IBM Support

PI18212: WSVR0120E IN GETCLASSBYTES CAUSES CLASS LOADER DEADLOCK

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • An error condition in getClassBytes which should result in a
    WSVR0120E error message instead results in a deadlock.  The
    javacores at the time of the issue show call stacks similar to
    the following:
    
    Deadlock detected !!!
    ---------------------
     Thread "WebContainer : 45" (0x0000000004A79F00)
       is waiting for:
         sys_mon_t:0x00007FCD8C004F98 infl_mon_t:
    0x00007FCD8C005010:
    
    com/ibm/ws/classloader/CompoundClassLoader@0x00000000120682F8
       which is owned by:
     Thread "WebContainer : 27" (0x0000000005EAB500)
       which is waiting for:
         sys_mon_t:0x00007FCD0401F638 infl_mon_t:
    0x00007FCD0401F6B0:
    
    com/ibm/ws/classloader/CompoundClassLoader@0x00000000120A7EB0
       which is owned by:
     Thread "WebContainer : 45" (0x0000000004A79F00)
    
    "WebContainer : 45" J9VMThread:0x0000000004A79F00,
    j9thread_t:0x00007FCE5414C880,
    java/lang/Thread:0x000000001228A710, state:B, prio=5
           (java/lang/Thread getId:0xFA, isDaemon:true)
           (native thread ID:0x70AA, native priority:0x5, native
    policy:UNKNOWN)
           (native stack address range
    from:0x00007FCDBBB6E000,to:0x00007FCDBBBAF000, size:0x41000)
    Blocked on:
    com/ibm/ws/classloader/CompoundClassLoader@0x00000000120682F8
    Owned by:  "WebContainer : 27" (J9VMThread:0x0000000005EAB500,
    java/lang/Thread:0x000000001322A4F0)
          Heap bytes allocated since last GC cycle=0 (0x0)
          Java callstack:
              at
    java/lang/ClassLoader.loadClass(ClassLoader.java:650(Compiled
    Code))
              at
    com/ibm/ws/classloader/CompoundClassLoader.loadClass(CompoundCla
    ssLoader.java:566(Compiled Code))
                 (entered lock:
    com/ibm/ws/classloader/CompoundClassLoader@0x00000000120A7EB0,
    entry count: 1)
              at
    java/lang/ClassLoader.loadClass(ClassLoader.java:650(Compiled
    Code))
              at
    com/ibm/xylem/types/ObjectFactory.findProviderClass(Bytecode
    PC:63(Compiled Code))
              at
    com/ibm/xylem/types/JavaObjectType.getJavaType(Bytecode
    PC:25(Compiled Code))
              at
    com/ibm/xylem/instructions/JavaMethodInvocationInstruction.evalu
    ate(Bytecode PC:78(Compiled Code))
              at
    com/ibm/xylem/instructions/JavaMethodInvocationInstruction.gener
    ateCode(Bytecode PC:15(Compiled Code))
              at
    com/ibm/xylem/instructions/LetInstruction.generateCode(Bytecode
    PC:61(Compiled Code))
              at
    com/ibm/xylem/instructions/BeginInstruction.generateCodeWithStre
    amOptimization(Bytecode PC:79(Compiled Code))
              at
    com/ibm/xylem/codegen/StreamOptimizedGenerationState.generateAdd
    ToStream(Bytecode PC:16(Compiled Code))
              at
    com/ibm/xylem/codegen/CodeGenerationTracker.generateAddToStream(
    Bytecode PC:112(Compiled Code))
              at
    com/ibm/xylem/instructions/ConstructorInstantiationInstruction.g
    enerateCode(Bytecode PC:92(Compiled Code))
              at
    com/ibm/xylem/instructions/MatchInstruction.generateCode(Bytecod
    e PC:515(Compiled Code))
              at
    com/ibm/xylem/instructions/LetInstruction.generateCode(Bytecode
    PC:72(Compiled Code))
              at
    com/ibm/xylem/instructions/ChooseInstruction.generateCode(Byteco
    de PC:145(Compiled Code))
              at
    com/ibm/xylem/instructions/LetInstruction.generateCode(Bytecode
    PC:72(Compiled Code))
              at
    com/ibm/xylem/instructions/ChooseInstruction.generateCode(Byteco
    de PC:145(Compiled Code))
              at
    com/ibm/xylem/instructions/LetInstruction.generateCode(Bytecode
    PC:72(Compiled Code))
              at
    com/ibm/xylem/instructions/MatchInstruction.generateCode(Bytecod
    e PC:515(Compiled Code))
              at
    com/ibm/xylem/instructions/LetInstruction.generateCode(Bytecode
    PC:72(Compiled Code))
              at
    com/ibm/xylem/instructions/AutomatonInstruction.generateCode(Byt
    ecode PC:1556(Compiled Code))
              at
    com/ibm/xylem/instructions/AutomatonInstruction.generateCode(Byt
    ecode PC:10(Compiled Code))
              at
    com/ibm/xylem/codegen/StreamInADTOptimizedFunctionGenerationStyl
    e.generateFunction(Bytecode PC:346(Compiled Code))
              at com/ibm/xylem/Program.generateCode(Bytecode
    PC:276(Compiled Code))
              at
    com/ibm/xtq/xslt/drivers/XSLTLinker.compileProgram2(Bytecode
    PC:773(Compiled Code))
                 (entered lock:
    com/ibm/xtq/bcel/util/BCELifier@0x000000000F4BD1A8, entry
    count: 1)
              at
    com/ibm/xtq/xslt/drivers/XSLTLinker.compileProgram(Bytecode
    PC:79(Compiled Code))
              at
    com/ibm/xtq/xslt/drivers/XSLTLinker.compileProgram(Bytecode
    PC:13(Compiled Code))
              at
    com/ibm/xtq/xslt/drivers/XSLTCompiler.linkAndCodeGen(Bytecode
    PC:24(Compiled Code))
              at
    com/ibm/xtq/xslt/drivers/XSLTCompiler.compile(Bytecode
    PC:73(Compiled Code))
              at
    com/ibm/xtq/xslt/jaxp/compiler/TransformerFactoryImpl.createTemp
    lates(Bytecode PC:723(Compiled Code))
              at
    com/ibm/xtq/xslt/jaxp/AbstractTransformerFactory.newTemplates(By
    tecode PC:4(Compiled Code))
    
    
    "WebContainer : 27" J9VMThread:0x0000000005EAB500,
    j9thread_t:0x00007FCE540C8580,
    java/lang/Thread:0x000000001322A4F0, state:B, prio=5
           (java/lang/Thread getId:0xE8, isDaemon:true)
           (native thread ID:0x7089, native priority:0x5, native
    policy:UNKNOWN)
           (native stack address range from:0x00007FCDBA49D000,
    to:0x00007FCDBA4DE000, size:0x41000)
    Blocked on:
    com/ibm/ws/classloader/CompoundClassLoader@0x00000000120A7EB0
    Owned by:  "WebContainer : 45" (J9VMThread:0x0000000004A79F00,
    java/lang/Thread:0x000000001228A710)
          Heap bytes allocated since last GC cycle=0 (0x0)
          Java callstack:
              at
    java/lang/ClassLoader.loadClass(ClassLoader.java:650(Compiled
    Code))
              at java/lang/Class.forNameImpl(Native Method)
              at java/lang/Class.forName(Class.java:213(Compiled
    Code))
              at
    java/util/ResourceBundle.handleGetBundle(ResourceBundle.java:498
    (Compiled Code))
              at
    java/util/ResourceBundle.getBundle(ResourceBundle.java:168(Compi
    led Code))
              at
    com/ibm/ejs/ras/TraceNLS.getResourceBundle(TraceNLS.java:787)
              at
    com/ibm/ws/logging/cbe/WsNoTemplateContentHandlerImpl.getResourc
    eBundle(WsNoTemplateContentHandlerImpl.java:677)
              at
    com/ibm/ws/logging/cbe/WsNoTemplateContentHandlerImpl.completeEv
    ent(WsNoTemplateContentHandlerImpl.java:345)
              at
    com/ibm/ws/logging/object/WsLogRecordFactory.createWsLogRecord(W
    sLogRecordFactory.java:261(Compiled Code))
              at com/ibm/ejs/ras/Tr.logToJSR47Logger(Tr.java:1698)
              at com/ibm/ejs/ras/Tr.fireEvent(Tr.java:1625)
              at com/ibm/ejs/ras/Tr.fireMessageEvent(Tr.java:1557)
              at com/ibm/ejs/ras/Tr.error(Tr.java:753)
              at
    com/ibm/ws/classloader/SinglePathClassProvider$2.run(SinglePathC
    lassProvider.java:400(Compiled Code))
              at
    com/ibm/ws/security/util/AccessController.doPrivileged(AccessCon
    troller.java:63(Compiled Code))
              at
    com/ibm/ws/classloader/SinglePathClassProvider.getClassBytesFrom
    Jar(SinglePathClassProvider.java:361(Compiled Code))
              at
    com/ibm/ws/classloader/SinglePathClassProvider.getClassBytes(Sin
    glePathClassProvider.java:305(Compiled Code))
              at
    com/ibm/ws/classloader/CompoundClassLoader.localFindClass(Compou
    ndClassLoader.java:699(Compiled Code))
              at
    com/ibm/ws/classloader/CompoundClassLoader.loadClass(CompoundCla
    ssLoader.java:568(Compiled Code))
                 (entered
    lock:com/ibm/ws/classloader/CompoundClassLoader@0x00000000120682
    F8, entry count: 1)
              at
    java/lang/ClassLoader.loadClass(ClassLoader.java:650(Compiled
    Code))
              at
    org/apache/commons/lang/exception/NestableException.<init>(Nesta
    bleException.java:103)
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: Attempt to log translated message       *
    *                      results in a class loader deadlock      *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    When the WebSphere Application Server class loader encounters
    an exception reading a jar file during class loading, it
    attempts to log a translated error message (WSVR0120E).  That
    triggers an attempt to load a message bundle, which utilizes
    the thread context class loader, a pattern that is susceptible
    to deadlocks in some packaging configurations (for example, if
    there are class loads originating in the EAR-level class
    loader while the WAR-level loader is set as the context class
    loader).
    

Problem conclusion

  • The translated message was relocated from the error stream to
    the debug stream and is no longer translated, avoiding the
    deadlock condition.
    
    The fix for this APAR is currently targeted for inclusion in
    fix packs 8.0.0.10 and 8.5.5.4.  Please refer to the
    Recommended Updates page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI18212

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-05-19

  • Closed date

    2014-08-12

  • Last modified date

    2014-08-12

  • 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

  • R800 PSY

       UP

  • R850 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":"8.0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
28 April 2022