JDK-8005956 : C2: assert(!def_outside->member(r)) failed: Use of external LRG overlaps the same LRG defined in this block
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs24,hs25
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: x86
  • Submitted: 2013-01-09
  • Updated: 2013-07-26
  • Resolved: 2013-06-03
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 7 JDK 8 Other
7u40Fixed 8Fixed hs24Fixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
http://mail.openjdk.java.net/pipermail/hotspot-dev/2013-January/007816.html

Here's a nice one, reported at bug 2396372.  Test case at
https://bugzilla.redhat.com/attachment.cgi?id=605282
The bug seems to have been in HotSpot for many years.

The test case runs through many iterations until:

$ java -XX:+PrintCompilation PolynomialRoot

!!!!!!!!n=4 test 1431
!!!!!!!!n=4 test 1432
    96   37       3       PolynomialRoot::root4 (1560 bytes)   made not entrant
    96  112       4       PolynomialRoot::root2 (183 bytes)
    96   45       4       PolynomialRoot::checkValues (360 bytes)   made not entrant
Exception in thread "main"      97   56   !   3       sun.nio.cs.US_ASCII$Encoder::encodeArrayLoop (356 bytes)   made not entrant
java.lang.RuntimeException: order=4     p[0]=-0.09965134319016089;p[1]=0.0;p[2]=0.30234383793894914;p[3]=-0.18180230156481425;p[4]=0.5206321058295245;
        x.r=0.134302716567836 x.i=0.4911858311805498
res/sabs=-0.03744084182425251 ims/sabs=0.007299470095647275 sabs=3.553068664639566
res=-0.13302988186347808 ims=0.02593551846531791 n=4 eps=1.0E-6  sabs>1/eps=false f1=true f2=true  t=1432
       at PolynomialRoot.checkValues(PolynomialRoot.java:424)
       at PolynomialRoot.testRoots(PolynomialRoot.java:491)
       at PolynomialRoot.main(PolynomialRoot.java:762)

mercury:~ $ java -version
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment (build 1.8.0-internal-aph_2013_01_09_11_31-b00)
OpenJDK 64-Bit Server VM (build 25.0-b15, mixed mode)

Andrew.
Comments
We filed separate bug 8017510 to add the test in hs25 and hs24. It will be pushed separately since we need time to understand in what form (copyright and test naming) to push it.
25-06-2013

Please confirm that there will be a testcase - as requested by SQE and I will approve this request.
25-06-2013

SQE is OK with this bug providing there will be testcase.
24-06-2013

I'm still waiting for SQE=OK in the comment, or the label - 7u40-SQE-OK - once I see either one of those here - I will approve this bug.
20-06-2013

Mark and Penny said it is okay to add it but keep header unchanged.
20-06-2013

We have License problem with the test. It is external test with: * ( C) Vladislav Malyshkin 2010 * This file is under GPL version 3. We can not push in into our sources without agreement from author. We use "GNU General Public License version 2 only" for our sources. Let me ask around.
20-06-2013

Vladimir: Ok. Pavel: 90-95% based on my experiences.
20-06-2013

What does "most of the times" stands for? If this is, say, ~90% this is enough for us to notice it. If this is, say, ~5% then such test does not make sense...
20-06-2013

Niclas, please, add regression test even if it is not always fail. Try -Xbatch and other flags which may help to reproduce failure more frequently. (Note, we would need to push the test into jdk8 also).
20-06-2013

I still need clear confirmation that SQE is OK before I can approve this bug. If you aren't - that's fine - you can say SQE-NO.
20-06-2013

If you are OK with using the already existing PolynomialRoot.java, then I'm also OK with it. What I meant is that writing a test that will make this crash trigger every time is hard. PolynomialRoot.java will make the crash trigger most of the times, but not always.
20-06-2013

Why is it too difficult to write test case if there is one attached to this bug? Please clarify
20-06-2013

It is unclear to me if the comment means that SQE does not agree with fixing this or if they are OK with fixing? Please clarify and once I see that - I will take appropriate action on the request.
20-06-2013

no-reg-hard: It's very complex to write a test that triggers this behavior.
18-06-2013

7u40-critical-request justification: Fixed long standing failure which affected both hs24 and hs25. Changes are small and low risk. Was reviewed by Vladimir Kozlov and Christian Thalinger. Bug was fixed in tested in hs25.
18-06-2013

Niclas, 7196566 could be also duplicate of this.
09-04-2013

Running the test with a fastdebug VM hits an assert: $ /java/re/jdk/8/latest/binaries/solaris-x64/fastdebug/bin/java -showversion -server PolynomialRoot java version "1.8.0-ea-fastdebug" Java(TM) SE Runtime Environment (build 1.8.0-ea-fastdebug-b71) Java HotSpot(TM) Server VM (build 25.0-b14-fastdebug, mixed mode) ======== n=4 0 2.0 1.7071067811865475 0.7071067811865476 1 -4.0 0.2928932188134524 -0.7071067811865476 2 6.0 1.7071067811865475 -0.7071067811865476 3 -4.0 0.2928932188134524 0.7071067811865476 4 1.0 ======== n=4 0 0.0 0.6666666698530332 0.0 1 -4.0 -0.9999999999999999 0.0 2 8.0 -6.938893903907228E-17 0.0 3 3.0 0.6666666634803002 0.0 4 -9.0 ======== n=4 0 -1.0 1.0 0.0 1 0.0 -1.0 0.0 2 2.0 1.0 0.0 3 0.0 -1.0 0.0 4 -1.0 ======== n=4 0 -5.0 1.0000000229418367 0.0 1 2.0 -1.6666666666666676 0.0 2 8.0 -0.9999999999999992 0.0 3 -2.0 0.9999999770581635 0.0 4 -3.0 ======== n=3 0 0.0 -1.4142135623730951 0.0 1 -2.0 1.4142135623730951 0.0 2 0.0 -9.999199243478975E-17 0.0 3 1.0 ======== n=3 0 0.0 0.0 0.0 1 2.0 -0.0 -1.414213562373095 2 0.0 -0.0 1.414213562373095 3 1.0 # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/live.cpp:97 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/tmp/workspace/jdk8-2-build-solaris-i586-product/jdk8/hotspot/src/share/vm/opto/live.cpp:97), pid=19216, tid=37 # assert(!def_outside->member(r)) failed: Use of external LRG overlaps the same LRG defined in this block # # JRE version: Java(TM) SE Runtime Environment (8.0-b71) (build 1.8.0-ea-fastdebug-b71) # Java VM: Java HotSpot(TM) Server VM (25.0-b14-fastdebug mixed mode solaris-x86 ) # Core dump written. Default location: /home/cthaling/core or core.19216 # # An error report file with more information is saved as: # /home/cthaling/hs_err_pid19216.log # # If you would like to submit a bug report, please visit: # http://bugreport.sun.com/bugreport/crash.jsp # Current thread is 37 Dumping core ... Abort
09-01-2013