IBM Support

IZ88266: WIN - CRASH IN NTDLL.DLL

Subscribe

You can track all active APARs for this component.

 

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