JDK-6993125 : runThese crashes with assert(Thread::current()->on_local_stack((address)this)) failed: ...
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs19,hs20
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic,x86
  • Submitted: 2010-10-19
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u25Fixed 7Fixed hs20Fixed
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Description
The runThese crashes. See report here:
http://sqeweb.sfbay.sun.com/nfs/results/vm/gtee/HSX/PIT/VM/hs20/b02/jdk7b115/fastdebug/bigapps/windows-i586/server/mixed/windows-i586_bigapps_server_mixed_runThese/analysis.html

The hs_err is:
;; Using jvm: "C:/local/common/jdk/baseline/windows-i586/jre/bin/server/jvm.dll"

Warning: This error log is *not* generated by the following JVM:
           C:/local/common/jdk/baseline/windows-i586/jre/bin/server/jvm.dll
         
         Expected vm_info: [OpenJDK Server VM (20.0-b02-201010152124.never.6992477-hsdev-fastdebug) for windows-x86 JRE (1.7.0), built on Oct 15 2010 15:37:41 by "Administrator" with MS VC++ 7.1 (VS2003)]
         Actual vm_info:   []
         
         JVM symbol lookup may be incorrect.
         Please use --jvm=<path/to/jvm> to point to the correct JVM.
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (C:\temp\jprt\P1\B\212431.never\source\src\share\vm\memory\allocation.cpp:85), pid=2768, tid=5920
#  assert(Thread::current()->on_local_stack((address)this)) failed: should be on stack
#
# JRE version: 7.0
# Java VM: OpenJDK Server VM (20.0-b02-201010152124.never.6992477-hsdev-fastdebug mixed mode windows-x86 )
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x06831000):  JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=5920, stack(0x06b50000,0x06c50000)]

Stack: [0x06b50000,0x06c50000],  sp=0x06c4e82c,  free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
Warning: This error log is *not* generated by the following JVM:
           C:/local/common/jdk/baseline/windows-i586/jre/bin/server/jvm.dll
         JVM symbol lookup may be incorrect.
         Please use --jvm=<path/to/jvm> to point to the correct JVM.

V  [jvm.dll+0x57124c];;  ?report_and_die@VMError@@QAEXXZ+0x4ec
V  [jvm.dll+0x2145c5];;  ?report_vm_error@@YAXPBDH00@Z+0x45
V  [jvm.dll+0xaee02];;  ??0ResourceObj@@QAE@XZ+0xa2
V  [jvm.dll+0x419b7e];;  ?ReduceInst@Matcher@@AAEPAVMachNode@@PAVState@@HAAPAVNode@@@Z+0x6e
V  [jvm.dll+0x41a288];;  ?ReduceOper@Matcher@@AAEXPAVState@@HAAPAVNode@@PAVMachNode@@@Z+0x248
V  [jvm.dll+0x418ca6];;  ?ReduceInst_Interior@Matcher@@AAEIPAVState@@HAAPAVNode@@PAVMachNode@@I@Z+0x166
V  [jvm.dll+0x419c6f];;  ?ReduceInst@Matcher@@AAEPAVMachNode@@PAVState@@HAAPAVNode@@@Z+0x15f
V  [jvm.dll+0x41a5de];;  ?match_tree@Matcher@@QAEPAVMachNode@@PBVNode@@@Z+0x31e
V  [jvm.dll+0x41b6fa];;  ?xform@Matcher@@QAEPAVNode@@PAV2@H@Z+0x10a
V  [jvm.dll+0x41c407];;  ?match@Matcher@@QAEXXZ+0x7f7
V  [jvm.dll+0x1da276];;  ?Code_Gen@Compile@@AAEXXZ+0x76
V  [jvm.dll+0x1dcdea];;  ??0Compile@@QAE@PAVciEnv@@PAVC2Compiler@@PAVciMethod@@H_N3@Z+0xafa
V  [jvm.dll+0x16dfff];;  ?compile_method@C2Compiler@@UAEXPAVciEnv@@PAVciMethod@@H@Z+0x6f
V  [jvm.dll+0x1dfdc4];;  ?invoke_compiler_on_method@CompileBroker@@CAXPAVCompileTask@@@Z+0x2f4
V  [jvm.dll+0x1e0b54];;  ?compiler_thread_loop@CompileBroker@@SAXXZ+0x414
V  [jvm.dll+0x53fa47];;  ?thread_main_inner@JavaThread@@QAEXXZ+0xb7
V  [jvm.dll+0x46ed64];;  ?java_start@@YGIPAVThread@@@Z+0xb4
C  [msvcr71.dll+0x9565]
C  [kernel32.dll+0x4d0e9]
C  [ntdll.dll+0x419bb]
C  [ntdll.dll+0x4198e]


Current CompileTask:
C2:1665308 3219      sun.security.x509.AVA.parseString(Ljava/io/Reader;IILjava/lang/StringBuilder;)Lsun/security/util/DerValue; (574 bytes)


---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x0b8f0800 JavaThread "$TESTBASE/jck/jck-15a/JCK/javatest.jar;$TESTBASE/jck/jck-15a/JCK/classes javasoft.sqe.tests.api.java.util.TreeSet.serial.ConstructorTests" [_thread_in_vm, id=6632, stack(0x07e90000,0x07ee0000)]
  0x54fdd400 JavaThread "text-layout" [_thread_blocked, id=8180, stack(0x0f8d0000,0x0f920000)]
  0x0bffe000 JavaThread "text-layout" [_thread_blocked, id=7068, stack(0x0f880000,0x0f8d0000)]
  0x0b8f0000 JavaThread "AWT-EventQueue-20" [_thread_blocked, id=4016, stack(0x580e0000,0x58130000)]
  0x0942c800 JavaThread "AWT-EventQueue-19" [_thread_blocked, id=3512, stack(0x58090000,0x580e0000)]
  0x0942c000 JavaThread "AWT-EventQueue-18" [_thread_blocked, id=4484, stack(0x58040000,0x58090000)]
  0x0942b800 JavaThread "AWT-EventQueue-17" [_thread_blocked, id=644, stack(0x57ff0000,0x58040000)]
  0x0942b000 JavaThread "AWT-EventQueue-16" [_thread_blocked, id=6740, stack(0x57fa0000,0x57ff0000)]
  0x0b39c800 JavaThread "AWT-EventQueue-15" [_thread_blocked, id=5004, stack(0x57f50000,0x57fa0000)]
  0x0b39c000 JavaThread "AWT-EventQueue-14" [_thread_blocked, id=4256, stack(0x0ffb0000,0x10000000)]
  0x0b39b800 JavaThread "AWT-EventQueue-13" [_thread_blocked, id=7956, stack(0x0ff60000,0x0ffb0000)]
  0x0b39b000 JavaThread "AWT-EventQueue-12" [_thread_blocked, id=5264, stack(0x0ff10000,0x0ff60000)]
  0x0b39a800 JavaThread "AWT-EventQueue-11" [_thread_blocked, id=7812, stack(0x0fec0000,0x0ff10000)]
  0x0b39a000 JavaThread "AWT-EventQueue-10" [_thread_blocked, id=4684, stack(0x0fe70000,0x0fec0000)]
  0x0b399800 JavaThread "AWT-EventQueue-9" [_thread_blocked, id=3336, stack(0x0fe20000,0x0fe70000)]
  0x0b399000 JavaThread "AWT-EventQueue-8" [_thread_blocked, id=7276, stack(0x0fdd0000,0x0fe20000)]
  0x0a0a8800 JavaThread "AWT-EventQueue-7" [_thread_blocked, id=5388, stack(0x0fd80000,0x0fdd0000)]
  0x0a0a8000 JavaThread "AWT-EventQueue-6" [_thread_blocked, id=6556, stack(0x0fd30000,0x0fd80000)]
  0x0a0a7000 JavaThread "AWT-EventQueue-5" [_thread_blocked, id=4452, stack(0x0fce0000,0x0fd30000)]
  0x54fde800 JavaThread "AWT-EventQueue-4" [_thread_blocked, id=7368, stack(0x0fc90000,0x0fce0000)]
  0x54fde000 JavaThread "AWT-EventQueue-3" [_thread_blocked, id=6844, stack(0x0fc40000,0x0fc90000)]
  0x0bffe800 JavaThread "AWT-EventQueue-1" [_thread_blocked, id=5972, stack(0x0e120000,0x0e170000)]
  0x0e96d000 JavaThread "Thread-50654" daemon [_thread_blocked, id=5116, stack(0x0f830000,0x0f880000)]
  0x0e96c800 JavaThread "Thread-50653" daemon [_thread_blocked, id=7392, stack(0x0f7e0000,0x0f830000)]
  0x0bb9c800 JavaThread "Thread-50652" daemon [_thread_blocked, id=3884, stack(0x0f790000,0x0f7e0000)]
  0x0bb9c000 JavaThread "Thread-50651" daemon [_thread_blocked, id=5620, stack(0x0f740000,0x0f790000)]
  0x0bb9b800 JavaThread "Thread-50650" daemon [_thread_blocked, id=6268, stack(0x0f6f0000,0x0f740000)]
  0x0bb9b400 JavaThread "Thread-50649" daemon [_thread_blocked, id=7896, stack(0x0e6d0000,0x0e720000)]
  0x0706c800 JavaThread "Thread-50429" daemon [_thread_blocked, id=3812, stack(0x0e680000,0x0e6d0000)]
  0x0b4ba800 JavaThread "Thread-50428" daemon [_thread_blocked, id=1104, stack(0x0e630000,0x0e680000)]
  0x0b4bd800 JavaThread "Thread-50427" daemon [_thread_blocked, id=5444, stack(0x0e5e0000,0x0e630000)]
  0x0b4ba400 JavaThread "Thread-50426" daemon [_thread_blocked, id=6032, stack(0x0e290000,0x0e2e0000)]
  0x0b4bb800 JavaThread "Thread-50418" daemon [_thread_blocked, id=5996, stack(0x0e240000,0x0e290000)]
  0x0b4bc800 JavaThread "text-layout" [_thread_blocked, id=6868, stack(0x0e1a0000,0x0e1f0000)]
  0x0adcb400 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=3600, stack(0x0dd70000,0x0ddc0000)]
  0x0adcb800 JavaThread "AWT-Shutdown" [_thread_blocked, id=7376, stack(0x0dce0000,0x0dd30000)]
  0x0b4bb000 JavaThread "Thread-50116" daemon [_thread_in_native, id=5424, stack(0x0dc90000,0x0dce0000)]
  0x0b4bc000 JavaThread "Thread-50096" daemon [_thread_blocked, id=4572, stack(0x0dba0000,0x0dbf0000)]
  0x0b4bd000 JavaThread "Swing-Shell" daemon [_thread_blocked, id=4760, stack(0x0dc40000,0x0dc90000)]
  0x0706d800 JavaThread "RMI TCP Accept-0" daemon [_thread_in_native, id=4328, stack(0x0db50000,0x0dba0000)]
  0x0706d000 JavaThread "$TESTBASE/jck/jck-15a/JCK/javatest.jar;$TESTBASE/jck/jck-15a/JCK/classes javasoft.sqe.tests.api.java.awt.Robot.CreateCapture -TestCaseID ALL" [_thread_in_native, id=7024, stack(0x07190000,0x071e0000)]
  0x0706e000 JavaThread "TimerQueue" daemon [_thread_blocked, id=4192, stack(0x07f60000,0x07fb0000)]
  0x0706e800 JavaThread "Thread-5" daemon [_thread_in_native, id=5696, stack(0x07700000,0x07750000)]
  0x06dc8c00 JavaThread "AWT-Windows" daemon [_thread_in_native, id=7572, stack(0x07560000,0x075b0000)]
  0x06d63800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=5236, stack(0x073c0000,0x07410000)]
  0x06942800 JavaThread "Thread-2" [_thread_blocked, id=4708, stack(0x07140000,0x07190000)]
  0x06dd9800 JavaThread "ControllerThread" daemon [_thread_blocked, id=6464, stack(0x070f0000,0x07140000)]
  0x06835400 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=7400, stack(0x06c50000,0x06ca0000)]
=>0x06831000 JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=5920, stack(0x06b50000,0x06c50000)]
  0x06821c00 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=2920, stack(0x06a50000,0x06b50000)]
  0x06820c00 JavaThread "Attach Listener" daemon [_thread_blocked, id=2928, stack(0x06a00000,0x06a50000)]
  0x0681f800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=7568, stack(0x069b0000,0x06a00000)]
  0x06801800 JavaThread "Finalizer" daemon [_thread_blocked, id=8068, stack(0x02250000,0x022a0000)]
  0x067fac00 JavaThread "Reference Handler" daemon [_thread_blocked, id=6004, stack(0x02200000,0x02250000)]
  0x00bcec00 JavaThread "main" [_thread_blocked, id=6304, stack(0x00320000,0x00370000)]

Other Threads:
  0x067f8400 VMThread [stack: 0x00c00000,0x00c50000] [id=8040]
  0x06837000 WatcherThread [stack: 0x06ca0000,0x06cf0000] [id=6536]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 PSYoungGen      total 336256K, used 2753K [0x3eac0000, 0x54010000, 0x54010000)
  eden space 323136K, 0% used [0x3eac0000,0x3ed70580,0x52650000)
  from space 13120K, 0% used [0x53340000,0x53340000,0x54010000)
  to   space 13184K, 0% used [0x52650000,0x52650000,0x53330000)
 PSOldGen        total 298112K, used 27804K [0x14010000, 0x26330000, 0x3eac0000)
  object space 298112K, 9% used [0x14010000,0x15b37040,0x26330000)
 PSPermGen       total 65536K, used 64805K [0x10010000, 0x14010000, 0x14010000)
  object space 65536K, 98% used [0x10010000,0x13f596d0,0x14010000)

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/build/hotspot/rev/79d8657be916
25-12-2010

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/79d8657be916
16-12-2010

PUBLIC COMMENTS This code is used to check that allocation space of a GrowableArray object is matching allocation space of its array. It is also check that operator ResourceObj::delete() is called only for C heap allocated objects. To do that operator ResourceObj::new() stores an allocation type into ResourceObj debug field. But new() is not called for stack allocated and embedded objects and ResourceObj() constructor does not know if new() was called. So the constructor is trying to guess it by looking on _allocation value which could be a garbage resembling a valid value. In this bug case the garbage was a valid value for an embedded object and not for a stack allocated object this is why the assert is failed. In the 6994834 case the garbage was a valid value for C heap allocated object and it was embedded object (funny fact: garbage value was 0xf1f1f1f1 which is zap value for malloc memory and the embedded object address was 0x0e0e0e0c so that ~(0x0e0e0e0c + 0x2) == 0xf1f1f1f1). The only small solution for this problem I found is to add another ResourceObj debug field and set it in operator ResourceObj::new(). I think it should provide much less probability that garbage in these two fields together will match valid values. Unfortunately the probability is not 0. An other solution is totally remove this code or put it under a flag and test it only sometimes.
13-12-2010

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/79d8657be916
11-12-2010