IBM Support

IV53806: JVM HANGS WHEN ONE THREAD READS THE CLASS ATTRIBUTES ANOTHER THREAD MODIFIES THE DEFINITION OF THE CLASS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: The JVM process hangs while one of the
    application thread busy executing within getter methods like
    Class.getDeclaredFields.
    .
    Stack Trace: Java stack of the application thread:
    java/lang/Class.getDeclaredFieldsImpl(Native Method)
    java/lang/Class.getDeclaredFields(Class.java:607)
    ...
    and corresponding native stack of the thread:
    romFieldsNextDo()
    getJNIFieldID()
    createInstanceFieldObject()
    java_lang_Class_getDeclaredFieldsImpl()
    ...
    .
    

Local fix

  • This problem can be worked around by disabling any profilers
    like wily which have the capability to perform runtime
    modification of class definition(using JVMTI interfaces
    RetransformClasses and RedefineClasses).
    

Problem summary

  • The problem is caused when the JVM executes reflect getter
    method on a class and at the same time another thread modifies
    the definition of the class using the JVMTI
    interfaces(RetransformClasses and RedefineClasses)
    

Problem conclusion

  • This APAR will be fixed in the following Java Releases:
       6 R1 SR8       (6.1.8.0)
       7    SR7       (7.0.7.0)
       7 R1 SR1       (7.1.1.0)
       6    SR16      (6.0.16.0)
    .
    The JVM has been modified to handle the special condition
    between the JVMTI interfaces and the getter methods execution.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV53806

  • Reported component name

    J9 COMMON CODE

  • Reported component ID

    620700127

  • Reported release

    260

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2014-01-08

  • Closed date

    2014-01-09

  • Last modified date

    2017-01-24

  • 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

    J9 COMMON CODE

  • Fixed component ID

    620700127

Applicable component levels

  • R260 PSY

       UP

  • R270 PSY

       UP

  • R600 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":"6.1","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
21 February 2022