IBM Support

PM28356: DEADLOCK IN ORG.ECLIPSE.OSGI.INTERNAL.BASEADAPTOR. DEFAULTCLASSLOADER

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • This is a standard Java deadlock in org.eclipse.osgi.internal.
    baseadaptor.DefaultClassLoader caused by the following stack.
    
    Found one Java-level deadlock:
    
    =============================
    "WebContainer : 2":
      waiting to lock monitor 0x002a89e8 (object 0x71db0138, a
    org.eclipse.
    osgi.internal.baseadaptor.DefaultClassLoader),
      which is held by "WebContainer : 1"
    "WebContainer : 1":
      waiting to lock monitor 0x002a89a0 (object 0x727d4988, a
    org.eclipse.
    osgi.internal.baseadaptor.DefaultClassLoader),
      which is held by "WebContainer : 2"
    Java stack information for the threads listed above:
    ===================================================
    "WebContainer : 2":
            at
    java.lang.ClassLoader.checkCerts(ClassLoader.java:751)
            - waiting to lock <0x71db0138> (a
    org.eclipse.osgi.internal.
    baseadaptor.DefaultClassLoader)
            at
    java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
            at
    java.lang.ClassLoader.defineClass(ClassLoader.java:614)
            at
    org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.
    defineClass(DefaultClassLoader.java:160)
            at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.
    defineClass(ClasspathManager.java:550)
            at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.
    findClassImpl(ClasspathManager.java:520)
            at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.
    findLocalClassImpl(ClasspathManager.java:451)
            at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.
    findLocalClass_LockClassName(ClasspathManager.java:430)
    "WebContainer : 1":
            at
    java.lang.ClassLoader.checkCerts(ClassLoader.java:751)
            - waiting to lock <0x727d4988> (a
    org.eclipse.osgi.internal.
    baseadaptor.DefaultClassLoader)
            at
    java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
            at
    java.lang.ClassLoader.defineClass(ClassLoader.java:614)
            at
    org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.
    defineClass(DefaultClassLoader.java:160)
            at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.
    defineClass(ClasspathManager.java:550)
            at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.
    findClassImpl(ClasspathManager.java:520)
            at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.
    findLocalClassImpl(ClasspathManager.java:451)
            at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.
    findLocalClass_LockClassName(ClasspathManager.java:430)
            at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.
    findLocalClass(ClasspathManager.java:417)
    

Local fix

  • Setting the following properties as generic jvm arguments should
    avoid this condition (needs to be set on every process in the
    cell)
    
    -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  IBM WebSphere Application Server V6.1       *
    *                  users who use Sun.                          *
    ****************************************************************
    * PROBLEM DESCRIPTION: Deadlock in                             *
    *                      org.eclipse.osgi.internal.baseadaptor.  *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    This is a standard Java deadlock in org.eclipse.osgi.internal.
    baseadaptor.DefaultClassLoader caused by the following stack.
    Found one Java-level deadlock:
    =============================
    "WebContainer : 2":
    waiting to lock monitor 0x002a89e8 (object 0x71db0138, a
    org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader),
    which is held by "WebContainer : 1"
    "WebContainer : 1":
    waiting to lock monitor 0x002a89a0 (object 0x727d4988, a
    org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader),
    which is held by "WebContainer : 2"
    Java stack information for the threads listed above:
    ===================================================
    "WebContainer : 2":
    at java.lang.ClassLoader.checkCerts(ClassLoader.java:751)
    
        * waiting to lock <0x71db0138> (a
          org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader)
          at
    java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
          at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
          at
    org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineC
    lass(DefaultClassLoader.java:160)
          at
    org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass
    (ClasspathManager.java:550)
          at
    org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassIm
    pl(ClasspathManager.java:520)
          at
    org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalCl
    assImpl(ClasspathManager.java:451)
          at
    org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalCl
    ass_LockClassName(ClasspathManager.java:430)
          "WebContainer : 1":
          at java.lang.ClassLoader.checkCerts(ClassLoader.java:751)
        * waiting to lock <0x727d4988> (a
          org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader)
          at
    java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
          at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
          at
    org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineC
    lass(DefaultClassLoader.java:160)
          at
    org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass
    (ClasspathManager.java:550)
          at
    org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassIm
    pl(ClasspathManager.java:520)
          at
    org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalCl
    assImpl(ClasspathManager.java:451)
          at
    org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalCl
    ass_LockClassName(ClasspathManager.java:430)
          at
    org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalCl
    ass(ClasspathManager.java:417)
    

Problem conclusion

  • The code has been modified to set the following properties as
    generic JVM arguments on all Sun server processes, which
    resolves the problem:
    -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass
    The fix for this APAR is currently targeted for inclusion in
    version 6.1 fix pack 6.1.0.37. Please refer to the recommended
    updates page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg2700498
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM28356

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    61S

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-12-07

  • Closed date

    2011-01-13

  • Last modified date

    2011-01-13

  • 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

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

  • R61A PSY

       UP

  • R61H PSY

       UP

  • R61I PSY

       UP

  • R61P PSY

       UP

  • R61S PSY

       UP

  • R61W PSY

       UP

  • R61Z PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.1","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
27 October 2021