United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6788527 Server vm intermittently fails with assertion "live value must not be garbage" with fastdebug bits
JDK-6788527 : Server vm intermittently fails with assertion "live value must not be garbage" with fastdebug bits

Details
Type:
Bug
Submit Date:
2008-12-23
Status:
Closed
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
hotspot
OS:
linux
Sub-Component:
compiler
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs14
Fixed Versions:
hs16 (b04)

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

Description
Server vm could fail with following assertion:

#  Internal Error (/BUILD_AREA/jdk7/hotspot/src/share/vm/opto/parse1.cpp:1610), pid=6861, tid=2693622672
#  Error: assert(n != top() || r->in(pnum) == top(),"live value must not be garbage")

                                    

Comments
EVALUATION

The value of JvmtiExport::can_access_local_variables() is changing in the middle of a compile.  These leads to inconsistent answers from MethodLiveness which leads to failure in the merge code.  If the values of JvmtiExport flags can change during a compile we need to cache them at the start in the ciEnv and validate them at the end of the compile, just like we do for other state.
                                     
2009-04-29
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/c96bf21b756f
                                     
2009-05-08
PUBLIC COMMENTS

Problem:
Jvmti and DTrace threads may change global flags used by Compiler
in the middle of compilation.  These leads to inconsistent answers
from MethodLiveness which leads to the failure during parsing.
It also invalidates dependencies constructed during compilation.

Solution:
Cache Jvmti and DTrace flags used by Compiler at the start
in the ciEnv and validate them at the end of the compile.
                                     
2009-05-08



Hardware and Software, Engineered to Work Together