-
Bug
-
Resolution: Fixed
-
P2
-
1.4.0
-
beta3
-
generic, sparc
-
generic, solaris_8
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....
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....
- duplicates
-
JDK-4489842 profiler "prof" crashes VM with assert(i < len, "oopmap not found")
- Closed
- relates to
-
JDK-4469343 Heap snapshot causes signal 11
- Closed
-
JDK-4497237 profiler "prof" crashes Server VM
- Closed
-
JDK-4489387 -Xrunhprof crashed jvm or got program run to hang
- Closed
-
JDK-4491764 JVMPI method entry, exit events cause client VM to crash with Unexpected Signal.
- Closed