United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6993125 runThese crashes with assert(Thread::current()->on_local_stack((address)this)) failed: ...
JDK-6993125 : runThese crashes with assert(Thread::current()->on_local_stack((address)this)) failed: ...

Details
Type:
Bug
Submit Date:
2010-10-19
Status:
Closed
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
x86,generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs19,hs20
Fixed Versions:
hs20 (b04)

Related Reports
Backport:
Backport:
Duplicate:
Duplicate:
Relates:
Relates:

Sub Tasks

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/hotspot-comp/hotspot/rev/79d8657be916
                                     
2010-12-11
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.
                                     
2010-12-13
EVALUATION

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

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



Hardware and Software, Engineered to Work Together