IBM Support

PM03111: *ORB* DEADLOCK IN COM.IBM.RMI.IO.VALUEUITLITY

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: Post migration to 142_SR13,the following deadlock
    may be seen at startup.
    1LKDEADLOCK    Deadlock detected !!!
    NULL           ---------------------
    NULL
    2LKDEADLOCKTHR  Thread "WebContainer : 39" (0x3DA8E5A8)
    3LKDEADLOCKWTR    is waiting for:
    4LKDEADLOCKMON      sys_mon_t:0x461EDEB8 infl_mon_t: 0x00000000:
    4LKDEADLOCKOBJ
    com.ibm.rmi.io.ValueUtility$ValueUtilityLock@88D73C50/88D73C58:
    3LKDEADLOCKOWN    which is owned by:
    2LKDEADLOCKTHR  Thread "WebContainer : 6" (0x458CBF28)
    3LKDEADLOCKWTR    which is waiting for:
    4LKDEADLOCKMON      sys_mon_t:0x461E25C8 infl_mon_t: 0x00000000:
    4LKDEADLOCKOBJ
    com.ibm.rmi.io.ValueUtility$ValueUtilityLock@88EC3A68/88EC3A70:
    3LKDEADLOCKOWN    which is owned by:
    2LKDEADLOCKTHR  Thread "WebContainer : 39" (0x3DA8E5A8)
    .
    Stack Trace: "WebContainer : 39" (TID:0x70C95E20,
    sys_thread_t:0x3DA8E5A8, state:CW, native ID:0xCE14) prio=5
    
    
        at
    com.ibm.rmi.io.ValueUtility$ValueUtilityLock.createTC(ValueUtili
    ty.java(Compiled Code))
    
        at
    com.ibm.rmi.io.ValueUtility$ValueUtilityLock.createValueTC(Value
    Utility.java(Compiled Code))
    
        at
    com.ibm.rmi.io.ValueUtility.createTypeCodeForClass(ValueUtility.
    java(Compiled Code))
    
        at
    com.ibm.rmi.io.ValueUtility.getTypeCode(ValueUtility.java(Compil
    ed Code))
    
        at
    com.ibm.rmi.io.ValueUtility.getTypeCode(ValueUtility.java(Compil
    ed Code))
    
        at
    com.ibm.rmi.io.ValueUtility.createTypeCodeForClass(ValueUtility.
    java(Compiled Code))
    
        at
    com.ibm.rmi.io.ValueUtility.getTypeCode(ValueUtility.java(Compil
    ed Code))
    
        at
    com.ibm.rmi.io.ValueUtility.getMembers(ValueUtility.java(Compile
    d Code))
    
        at
    com.ibm.rmi.io.ValueUtility.access$100(ValueUtility.java(Compile
    d Code))
    
        at
    com.ibm.rmi.io.ValueUtility$ValueUtilityLock.createTC(ValueUtili
    ty.java(Compiled Code))
    
        at
    com.ibm.rmi.io.ValueUtility$ValueUtilityLock.createValueTC(Value
    Utility.java(Compiled Code))
    
        at
    com.ibm.rmi.io.ValueUtility.createTypeCodeForClass(ValueUtility.
    java(Compiled Code))
    
        at
    com.ibm.rmi.io.ValueUtility.getTypeCode(ValueUtility.java(Compil
    ed Code))
    
        at
    com.ibm.rmi.io.ValueUtility.getMembers(ValueUtility.java(Compile
    d Code))
    
        at
    com.ibm.rmi.io.ValueUtility.translate(ValueUtility.java(Compiled
    Code))
    
        at
    com.ibm.rmi.util.RepositoryId.getFVDesc(RepositoryId.java(Compil
    ed Code))
    
        at
    com.ibm.rmi.util.RepositoryId.createForJavaType(RepositoryId.jav
    a(Compiled Code))
    
        at
    com.ibm.rmi.io.ValueUtility.createTypeCodeForClass(ValueUtility.
    java(Compiled Code))
    
        at
    com.ibm.rmi.io.ValueUtility.getTypeCode(ValueUtility.java(Compil
    ed Code))
    
        at
    com.ibm.rmi.io.ValueUtility.getTypeCode(ValueUtility.java(Compil
    ed Code))
    
        at
    com.ibm.rmi.io.ValueUtility.createTypeCodeForClass(ValueUtility.
    java(Compiled Code))
    
        at
    com.ibm.rmi.io.ValueUtility.getTypeCode(ValueUtility.java(Compil
    ed Code))
    
        at
    com.ibm.rmi.io.ValueUtility.translate(ValueUtility.java(Compiled
    Code))
    
        at
    com.ibm.rmi.util.RepositoryId.getFVDesc(RepositoryId.java(Compil
    ed Code))
    
        at
    com.ibm.rmi.util.RepositoryId.createForJavaType(RepositoryId.jav
    a(Compiled Code))
    
        at
    com.ibm.rmi.io.ValueUtility.getMembers(ValueUtility.java(Compile
    d Code))
    
        at
    com.ibm.rmi.io.ValueUtility.translate(ValueUtility.java(Compiled
    Code))
    
        at
    com.ibm.rmi.util.RepositoryId.getFVDesc(RepositoryId.java(Compil
    ed Code))
    
        at
    com.ibm.rmi.util.RepositoryId.createForJavaType(RepositoryId.jav
    a(Compiled Code))
    
        at
    com.ibm.rmi.util.RepositoryId.createForAnyType(RepositoryId.java
    (Compiled Code))
        at
    com.ibm.rmi.iiop.CDRInputStream.fast_read_value(CDRInputStream.j
    ava(Compiled Code))
        at
    com.ibm.rmi.iiop.CDRInputStream.read_value(CDRInputStream.java:2
    017)
    
        at
    com.a.b._RemoteService_Stub.remoteMethod(_RemoteService_Stub.jav
    a:249)
    .
    

Local fix

Problem summary

  • The problem was caused due to a synchronization issue in the
    ValueUtilityLock class when multiple threads try to initialize
    classes holding references to each other
    

Problem conclusion

  • The deadlock was resolved by using thread safe structures.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM03111

  • Reported component name

    WIN AMD 64 JAVA

  • Reported component ID

    620400102

  • Reported release

    142

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-12-10

  • Closed date

    2010-03-19

  • Last modified date

    2010-03-19

  • APAR is sysrouted FROM one or more of the following:

    PM03106

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    WIN AMD 64 JAVA

  • Fixed component ID

    620400102

Applicable component levels

  • R142 PSN

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCGLMF","label":"Java SDK"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"1.4.2","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
19 March 2010