IBM Support

IV16500: DEADLOCK BETWEEN THREAD LOADING CLASS AND THREAD INVOKING JAVA.NET.URL.GETURLSTREAMHANDLER()

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: Deadlock between URL handler and Class loader
    .
    Stack Trace: 1LKDEADLOCK    Deadlock detected !!!
    NULL           ---------------------
    NULL
    2LKDEADLOCKTHR  Thread 'Non-deferrable Alarm : 0'
    (0x00000000012B8A00)
    3LKDEADLOCKWTR    is waiting for:
    4LKDEADLOCKMON      sys_mon_t:0x0000040014088C00 infl_mon_t:
    0x0000040014088C78:
    4LKDEADLOCKOBJ
    com/ibm/ws/bootstrap/ExtClassLoader@0x0000000010A7F940/0x0000000
    010A7F944:
    3LKDEADLOCKOWN    which is owned by:
    2LKDEADLOCKTHR  Thread 'PluginConfigService : 0'
    (0x0000000002229100)
    3LKDEADLOCKWTR    which is waiting for:
    4LKDEADLOCKMON      sys_mon_t:0x0000040014CD0588 infl_mon_t:
    0x0000040014CD0600:
    4LKDEADLOCKOBJ
    java/lang/Object@0x0000000010121CE0/0x0000000010121CE4:
    3LKDEADLOCKOWN    which is owned by:
    2LKDEADLOCKTHR  Thread 'Non-deferrable Alarm : 0'
    (0x00000000012B8A00)
    3XMTHREADINFO      'Non-deferrable Alarm : 0'
    J9VMThread:0x00000000012B8A00, j9thread_t:0x00000400064427E0,
    java/lang/Thread:0x00000000115A6F90, state:B, prio=5
    3XMTHREADINFO1            (native thread ID:0x612, native
    priority:0x5, native policy:UNKNOWN)
    3XMTHREADINFO2            (native stack address range
    from:0x0000040011EC0000, to:0x0000040011F00000, size:0x40000)
    3XMTHREADINFO3           Java callstack:
    4XESTACKTRACE                at
    java/lang/ClassLoader.loadClass(ClassLoader.java:630(Compiled
    Code))
    4XESTACKTRACE                at
    com/ibm/ws/bootstrap/ExtClassLoader.loadClass(ExtClassLoader.jav
    a:113(Compiled Code))
    4XESTACKTRACE                at
    java/lang/ClassLoader.loadClass(ClassLoader.java:612(Compiled
    Code))
    4XESTACKTRACE                at
    com/ibm/ws/eba/internal/framework/EBAClassLoader.loadClass(EBACl
    assLoader.java:86(Compiled Code))
    4XESTACKTRACE                at
    org/eclipse/osgi/launch/EquinoxFWClassLoader.loadClass(EquinoxFW
    ClassLoader.java:46(Compiled Code))
    4XESTACKTRACE                at
    java/lang/ClassLoader.loadClass(ClassLoader.java:638(Compiled
    Code))
    4XESTACKTRACE                at
    java/lang/ClassLoader.loadClass(ClassLoader.java:612(Compiled
    Code))
    4XESTACKTRACE                at
    sun/reflect/DelegatingClassLoader.loadClass(DelegatingClassLoade
    r.java:51)
    4XESTACKTRACE                at
    sun/misc/Unsafe.defineClass(Native Method)
    4XESTACKTRACE                at
    sun/reflect/ClassDefiner.defineClass(ClassDefiner.java:57)
    4XESTACKTRACE                at
    sun/reflect/MethodAccessorGenerator$1.run(MethodAccessorGenerato
    r.java:437)
    4XESTACKTRACE                at
    java/security/AccessController.doPrivileged(AccessController.jav
    a:203(Compiled Code))
    4XESTACKTRACE                at
    sun/reflect/MethodAccessorGenerator.generate(MethodAccessorGener
    ator.java:433)
    4XESTACKTRACE                at
    sun/reflect/MethodAccessorGenerator.generateMethod(MethodAccesso
    rGenerator.java:85(Compiled Code))
    4XESTACKTRACE                at
    sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessor
    Impl.java:54(Compiled Code))
    4XESTACKTRACE                at
    sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethod
    AccessorImpl.java:37(Compiled
    Code))
    4XESTACKTRACE                at
    java/lang/reflect/Method.invoke(Method.java:611(Compiled Code))
    4XESTACKTRACE                at
    org/eclipse/osgi/framework/internal/protocol/MultiplexingFactory
    .findAuthorizedFactory
    (MultiplexingFactory.java:128)
    4XESTACKTRACE                at
    org/eclipse/osgi/framework/internal/protocol/StreamHandlerFactor
    y.findAuthorizedURLStreamHandler
    (StreamHandlerFactory.java:194)
    4XESTACKTRACE                at
    org/eclipse/osgi/framework/internal/protocol/StreamHandlerFactor
    y.createURLStreamHandler
    (StreamHandlerFactory.java:112)
    4XESTACKTRACE                at
    java/net/URL.getURLStreamHandler(URL.java:1184(Compiled Code))
    4XESTACKTRACE                at
    java/net/URL.<init>(URL.java:405(Compiled Code))
    4XESTACKTRACE                at
    java/net/URL.<init>(URL.java:295(Compiled Code))
    4XESTACKTRACE                at
    java/security/CodeSource.getDecodedURL(CodeSource.java:344(Compi
    led Code))
    4XESTACKTRACE                at
    java/security/CodeSource.implies(CodeSource.java:357(Compiled
    Code))
    3XMTHREADINFO      'PluginConfigService : 0'
    J9VMThread:0x0000000002229100, j9thread_t:0x0000040011697280,
    java/lang/Thread:0x000000001514E678, state:B, prio=5
    3XMTHREADINFO1            (native thread ID:0xD88, native
    priority:0x5, native policy:UNKNOWN)
    3XMTHREADINFO2            (native stack address range
    from:0x00000400126E0000, to:0x0000040012720000, size:0x40000)
    3XMTHREADINFO3           Java callstack:
    4XESTACKTRACE                at
    java/net/URL.getURLStreamHandler(URL.java:1169(Compiled Code))
    4XESTACKTRACE                at
    java/net/URL.<init>(URL.java:405(Compiled Code))
    4XESTACKTRACE                at
    java/net/URL.<init>(URL.java:295(Compiled Code))
    4XESTACKTRACE                at
    java/security/CodeSource.getDecodedURL(CodeSource.java:344(Compi
    led Code))
    4XESTACKTRACE                at
    java/security/CodeSource.implies(CodeSource.java:358(Compiled
    Code))
    4XESTACKTRACE                at
    com/ibm/ws/security/policy/WSDynamicPolicy.getPermissions_s(WSDy
    namicPolicy.java:274(Compiled Code))
    .
    

Local fix

Problem summary

  • The synchronized block which loads classes and get called while
    a class is being loaded may end up in a deadlock situation.
    

Problem conclusion

  • This defect will be fixed in:
    6.0.0 SR11
    6.0.1 SR2
    .
    The JDK has been updated to minimize the synchronization to
    avoid the deadlock situation as sysnchronization is not required
    during class loading. The problem did not exist in JDK 7 as
    parallel class loading is allowed in JDK 7.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV16500

  • 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

    2012-03-03

  • Closed date

    2013-10-04

  • Last modified date

    2013-10-04

  • 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 PSY

       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:
04 October 2013