Other |
---|
1.4.0 beta3Fixed |
Duplicate :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
Problem: (see also 4469343) JProbe fails to get heap dump and VM crashes when traversing oops in the stack frame of a thread exiting a compiled method during heap dump collection and got "oopmap not found" assertion: # assert(!precise || at(i)->offset() == pc_offset, "oopmap not found") # # Error happened during: post JVMPI heap dump # # Error ID: /export/files/ladybird_fixes/src/share/vm/compiler/oopMap.cpp, 310 [ Patched ] and # assert(i < len, "oopmap not found") # # Error happened during: post JVMPI heap dump # # Error ID: /export/files/ladybird_fixes/src/share/vm/compiler/oopMap.cpp, 309 [ (both with nid=0x4, i.e. the VMThread) SharedRuntime::jvmpi_method_exit is NOT a leaf since safepoint can occur while a thread is in jvmpi::post_method_exit_event. One reason for that is that jvmpi::post_event_vm_mode makes calls to ThreadStateTransition::transition(), which allows safepoint to block. As discussed with Dave Cox, it's better to make C1 to generate oopmap for method exit and define SharedRuntime::jvmpi_method_exit as a JRT_ENTRY for Merlin. If necessary, we can also port the fix to 1.3.1_02 patch. We might have the same problem for monitor_exit, which is defined as a leaf, but it's not when jvmpi monitor exit event is enabled. So we might want to do the same thing for monitor_exit. mandy.chung@eng 2001-08-09 4489387 also reports the same problem but the test fails when running with -Xrunhprof:cpu=times. To reproduce the failure, > cd /home/zzhang/bugs/footprint > java_g -Xrunhprof:cpu=times -cp jmol-0.2/jars/jmol.jar -Djmol.home=jmol-0.2 jmol.Jmol HPROF ERROR: thread local table NULL in method exit cb5a0 HPROF ERROR: thread local table NULL in method exit cb5a0 HPROF ERROR: thread local table NULL in method exit cc2a0 HPROF ERROR : stack underflow in method exit HPROF ERROR : stack underflow in method exit default to Motif 2.1, os is: 5.8 # # HotSpot Virtual Machine Error, assertion failure # Please report this error at # http://java.sun.com/cgi-bin/bugreport.cgi # # Java VM: Java HotSpot(TM) Client VM (1.4-internal-debug mixed mode) # # assert(i < len, "oopmap not found") # # Error ID: /export/hotspot/users1/mchung/merlin_baseline/src/share/vm/compiler/oopMap.cpp, 335 [ Patched ] # # Problematic Thread: prio=5 tid=0xc98d0 nid=0x4 runnable # Dumping core....
|