review (S) for 7031614: jmap -permstat fails with java.lang.InternalError in sun.jvm.hotspot.oops.OopField.getValue

Daniel D. Daugherty daniel.daugherty at oracle.com
Wed Mar 30 07:38:24 PDT 2011


Added serviceability-dev at ... since this affects SA code...


On 3/29/2011 11:58 AM, Tom Rodriguez wrote:
> http://cr.openjdk.java.net/~never/7031614
>   

Please update copyright years as needed.

I could be wrong here but some of what you've uncovered here
appears to be applicable to older SA (pre-static field move).
In particular the oop sizing stuff and static field visitation
during mirror processing.

Did you also get a chance to run the nsk.sajdi subsuite?

Thumbs up.

Dan


agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/oops/Instance.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java
    line 478 - delete blank line?

agent/src/share/classes/sun/jvm/hotspot/oops/InstanceMirrorKlass.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/jdi/ClassObjectReferenceImpl.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/oops/java_lang_Class.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/tools/FinalizerInfo.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/utilities/HeapGXLWriter.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/utilities/ReversePtrsAnalysis.java
    No comments.

agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaFactoryImpl.java
    No comments.

src/share/vm/oops/instanceMirrorKlass.hpp
    No comments.

src/share/vm/runtime/vmStructs.cpp
    No comments.


> 7031614: jmap -permstat fails with java.lang.InternalError in sun.jvm.hotspot.oops.OopField.getValue
> Reviewed-by:
>
> There were some places that were finding static fields by iterating
> over the InstanceKlass object which I missed in my original changes.
> I added an iterateStaticFields that hides the owner the static fields
> and uses the OopVisitor.getObj to return the proper object.  I
> inspected all the iterateFields call sites to make sure I didn't miss
> any.  Additionally iteration of the mirror wasn't visiting the static
> fields so some roots might be missed by the reverse pointers analysis.
> There is heap iteration code in the SA and the InstanceMirrorKlass
> wasn't plugged into the the oop sizing logic in the SA which caused
> some searches to fail.  I needed to add access to oop_size so I moved
> the java_lang_Class style utilities into their own class and made them
> like normal SA style classes.  Tested with the full tmtools suite that
> showed these issues plus some other which don't appear to have been
> reported.
>
>   


More information about the serviceability-dev mailing list