APAR status
Closed as program error.
Error description
Error Message: Customer was experiencing crash ntdll.dll RtlEnterCriticalSection . Stack Trace: The current stack trace from javacore is as follows: 'WebContainer : 5' J9VMThread:0x2ECF4500, j9thread_t:0x261D9730, java/lang/Thread:0x0C40E7F8, state:R, prio=5(native thread ID:0x1244, native priority:0x5, native policy:UNKNOWN) Java callstack: at sun/jdbc/odbc/JdbcOdbc.allocConnect(Native Method) at sun/jdbc/odbc/JdbcOdbc.SQLAllocConnect(JdbcOdbc.java:125) at sun/jdbc/odbc/JdbcOdbcDriver.allocConnection(JdbcOdbcDriver.java :938) at sun/jdbc/odbc/JdbcOdbcConnection.initialize(JdbcOdbcConnection.j ava:138) at sun/jdbc/odbc/JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) . . . . XXX/ . . . . . . . XXX/ . . . . . . . XXX/ . . . . . . . XXX/ . . . . . . . XXX/ . . . at javax/servlet/http/HttpServlet.service(HttpServlet.java:718) at javax/servlet/http/HttpServlet.service(HttpServlet.java:831) at com/ibm/ws/webcontainer/servlet/ServletWrapper.service(ServletWr apper.java:1655) at com/ibm/ws/webcontainer/servlet/ServletWrapper.handleRequest(Ser vletWrapper.java:937) at com/ibm/ws/webcontainer/servlet/ServletWrapper.handleRequest(Ser vletWrapper.java:500) at com/ibm/ws/webcontainer/servlet/ServletWrapperImpl.handleRequest (ServletWrapperImpl.java:178) at com/ibm/ws/webcontainer/servlet/CacheServletWrapper.handleReques t(CacheServletWrapper.java:91) at com/ibm/ws/webcontainer/WebContainer.handleRequest(WebContainer. java:864) at com/ibm/ws/webcontainer/WSWebContainer.handleRequest(WSWebContai ner.java:1583) at com/ibm/ws/webcontainer/channel/WCChannelLink.ready(WCChannelLin k.java:183) at com/ibm/ws/http/channel/inbound/impl/HttpInboundLink.handleDiscr imination(HttpInboundLink.java:455) at com/ibm/ws/http/channel/inbound/impl/HttpInboundLink.handleNewIn formation(HttpInboundLink.java:384) at com/ibm/ws/http/channel/inbound/impl/HttpInboundLink.ready(HttpI nboundLink.java:272) at com/ibm/ws/tcp/channel/impl/NewConnectionInitialReadCallback.sen dToDiscriminators(NewConnectionInitialReadCallback.java:214) at com/ibm/ws/tcp/channel/impl/NewConnectionInitialReadCallback.com plete(NewConnectionInitialReadCallback.java:113) at com/ibm/ws/tcp/channel/impl/AioReadCompletionListener.futureComp leted(AioReadCompletionListener.java:165) at com/ibm/io/async/AbstractAsyncFuture.invokeCallback(AbstractAsyn cFuture.java:217) at com/ibm/io/async/AsyncChannelFuture.fireCompletionActions(AsyncC hannelFuture.java:161) at com/ibm/io/async/AsyncFuture.completed(AsyncFuture.java:138) at com/ibm/io/async/ResultHandler.complete(ResultHandler.java:204) at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHand ler.java:775) at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:905) at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1550) Native callstack: RtlEnterCriticalSection+0x19 (0x7C96A379 <OSB>ntdll+0x1a379<CSB>) SQLConnectA+0x2ef8 (0x4B904C36 <OSB>ODBC32+0x34c36<CSB>) SQLAllocConnect+0x7d (0x4B8D8751 <OSB>ODBC32+0x8751<CSB>) SQLAllocConnect+0x1f (0x4B8D86F3 <OSB>ODBC32+0x86f3<CSB>) Java_sun_jdbc_odbc_JdbcOdbc_allocConnect+0x28 (jdbcodbc.c:243, 0x7F3B11CB <OSB>JdbcOdbc+0x11cb<CSB>) VMprJavaSendNative+0x467 (jnisend.asm:452, 0x7FF0B1C7 <OSB>j9vm24+0x1b1c7<CSB>) javaProtectedThreadProc+0x7d (vmthread.c:1653, 0x7FF2C5CD <OSB>j9vm24+0x3c5cd<CSB>) j9sig_protect+0x41 (j9signal.c:144, 0x7FECBFA1 <OSB>J9PRT24+0xbfa1<CSB>) javaThreadProc+0x35 (vmthread.c:260, 0x7FF2CDF5 <OSB>j9vm24+0x3cdf5<CSB>) thread_wrapper+0xbf (j9thread.c:947, 0x7FFA3F2F <OSB>J9THR24+0x3f2f<CSB>) _endthread+0xaa (0x7C34940F <OSB>msvcr71+0x940f<CSB>) GetModuleHandleA+0xdf (0x7C82482F <OSB>kernel32+0x2482f<CSB>) .
Local fix
Problem summary
This problem was due to a thread race condition in JdbcOdbcDriver class. When one thread tries to close the connection using JdbcOdbcDriver.closeConnection(), it cleaned up a global variable which was used by another thread for opening a connection using JdbcOdbcDriver.connect(). As the global variable was cleaned up by one thread and used by another thread, it resulted in the ntdll crash.
Problem conclusion
This defect will be fixed in: 6.0.0 SR10 . The JVM is updated to avoid the thread race condition in JdbcOdbcDriver class . . To obtain the fix: Install build 20101228 or later
Temporary fix
Comments
APAR Information
APAR number
IZ88266
Reported component name
JAVA CLASS LIBS
Reported component ID
620700130
Reported release
600
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-11-08
Closed date
2010-12-30
Last modified date
2011-09-21
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
JAVA CLASS LIBS
Fixed component ID
620700130
Applicable component levels
R600 PSN
UP
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVQ3Y","label":"Java Class Libraries"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
21 September 2011