IBM Support

IV83668: DEADLOCK BETWEEN THE THREADS DURING CLASSLOADING ON IBM HYBRID J DKS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: N/A
    .
    Stack Trace: "thread2":
    at java.util.zip.ZipFile.getEntry(ZipFile.java:308)
    - waiting to lock <0x9fffffff5487d7d8> (a java.util.jar.JarFile)
    at java.util.jar.JarFile.getEntry(JarFile.java:227)
    at java.util.jar.JarFile.getJarEntry(JarFile.java:210)
    at
    sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:84
    0)
    at sun.misc.URLClassPath.getResource(URLClassPath.java:199)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:358)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:431)
    - locked <0x9fffffff549ccf78> (a java.lang.Object)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    - locked <0x9fffffff549cc628> (a java.lang.Object)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    .
    .
    .
    "thread1":
    at java.lang.ClassLoader.loadClass(ClassLoader.java:409)
    - waiting to lock <0x9fffffff549cc628> (a java.lang.Object)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at
    sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:215)
    at
    sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
    at java.security.AccessController.doPrivileged(Native Method)
    at
    sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.ja
    va:206)
    at
    sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:
    187)
    - locked <0x9fffffff54bbbfd8> (a
    sun.security.jca.ProviderConfig)
    at
    sun.security.jca.ProviderList.getProvider(ProviderList.java:232)
    at
    sun.security.jca.ProviderList$ServiceList.tryGet(ProviderList.ja
    va:433)
    at
    sun.security.jca.ProviderList$ServiceList.access$200(ProviderLis
    t.java:375)
    at
    sun.security.jca.ProviderList$ServiceList$1.hasNext(ProviderList
    .java:485)
    at java.security.KeyFactory.nextSpi(KeyFactory.java:294)
    - locked <0x9fffffff54c1d880> (a java.lang.Object)
    at java.security.KeyFactory.<init>(KeyFactory.java:137)
    at java.security.KeyFactory.getInstance(KeyFactory.java:172)
    at sun.security.x509.X509Key.buildX509Key(X509Key.java:220)
    at sun.security.x509.X509Key.parse(X509Key.java:170)
    at
    sun.security.x509.CertificateX509Key.<init>(CertificateX509Key.j
    ava:75)
    at sun.security.x509.X509CertInfo.parse(X509CertInfo.java:705)
    at sun.security.x509.X509CertInfo.<init>(X509CertInfo.java:169)
    at sun.security.x509.X509CertImpl.parse(X509CertImpl.java:1781)
    at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:196)
    at
    sun.security.provider.X509Factory.engineGenerateCertificate(X509
    Factory.java:97)
    at
    java.security.cert.CertificateFactory.generateCertificate(Certif
    icateFactory.java:407)
    at sun.security.pkcs.PKCS7.parseSignedData(PKCS7.java:299)
    at sun.security.pkcs.PKCS7.parse(PKCS7.java:158)
    at sun.security.pkcs.PKCS7.parse(PKCS7.java:126)
    at sun.security.pkcs.PKCS7.<init>(PKCS7.java:108)
    at
    sun.security.util.SignatureFileVerifier.getTimestamp(SignatureFi
    leVerifier.java:581)
    at
    sun.security.util.SignatureFileVerifier.getSigners(SignatureFile
    Verifier.java:534)
    at
    sun.security.util.SignatureFileVerifier.processImpl(SignatureFil
    eVerifier.java:272)
    at
    sun.security.util.SignatureFileVerifier.process(SignatureFileVer
    ifier.java:239)
    at java.util.jar.JarVerifier.processEntry(JarVerifier.java:317)
    at java.util.jar.JarVerifier.update(JarVerifier.java:228)
    at java.util.jar.JarFile.initializeVerifier(JarFile.java:348)
    at java.util.jar.JarFile.getInputStream(JarFile.java:418)
    - locked <0x9fffffff5487d7d8> (a java.util.jar.JarFile)
    at
    sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.ja
    va:775)
    .
    .
    .
    .
    Found one Java-level deadlock:
    =============================
    "thread2":
      waiting to lock monitor 0x6000000000d61f68 (object
    0x9fffffff5487d7d8, a java.util.jar.JarFile),
      which is held by "thread1"
    "thread1":
      waiting to lock monitor 0x6000000000f381a8 (object
    0x9fffffff549cc628, a java.lang.Object),
      which is held by "thread2"
    

Local fix

  • N/A
    

Problem summary

  • Deadlock between the threads during classloading on hybrid
    platforms .
    

Problem conclusion

  • Absence of SunRsaSign class in IBM Hybrid JDKs led to a deadlock
    between the threads doing classloading .  JDK is modified to
    include the SunRsaSign class.
    .
    This APAR will be fixed in the following Java Releases:
       8    SR3       (8.0.3.0)
       7    SR10      (7.0.10.0)
    .
    Contact your IBM Product's Service Team for these Service
    Refreshes and Fix Packs.
    For those running stand-alone, information about the available
    Service Refreshes and Fix Packs can be found at:
               https://www.ibm.com/developerworks/java/jdk/
    

Temporary fix

  • N/A
    

Comments

APAR Information

  • APAR number

    IV83668

  • Reported component name

    JAVA CLASS LIBS

  • Reported component ID

    620700130

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-04-12

  • Closed date

    2016-04-12

  • Last modified date

    2016-04-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

    JAVA CLASS LIBS

  • Fixed component ID

    620700130

Applicable component levels

  • R800 PSY

       UP

  • R700 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
21 February 2022