United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-8005956 C2: assert(!def_outside->member(r)) failed: Use of external LRG overlaps the same LRG defined in this block
JDK-8005956 : C2: assert(!def_outside->member(r)) failed: Use of external LRG overlaps the same LRG defined in this block

Details
Type:
Bug
Submit Date:
2013-01-09
Status:
Resolved
Updated Date:
2013-07-26
Project Name:
JDK
Resolved Date:
2013-06-03
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs24,hs25
Fixed Versions:
hs25 (b36)

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

Sub Tasks

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
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

                                     
2013-01-09
Niclas, 7196566 could be also duplicate of this.
                                     
2013-03-30
URL:   http://hg.openjdk.java.net/hsx/hsx25/hotspot/rev/b274ac1dbe11
User:  amurillo
Date:  2013-06-07 19:51:24 +0000

                                     
2013-06-07
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. 
                                     
2013-06-18
no-reg-hard:
It's very complex to write a test that triggers this behavior. 
                                     
2013-06-18
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.
                                     
2013-06-20
Why is it too difficult to write test case if there is one attached to this bug? Please clarify
                                     
2013-06-20
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.

                                     
2013-06-20
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.
                                     
2013-06-20
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).
                                     
2013-06-20
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...
                                     
2013-06-20
Vladimir: Ok.
Pavel: 90-95% based on my experiences.
                                     
2013-06-20
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.
                                     
2013-06-20
URL:   http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/b274ac1dbe11
User:  kvn
Date:  2013-06-03 23:53:14 +0000

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


                                     
2013-06-20
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.
                                     
2013-06-20
SQE is OK with this bug providing there will be testcase.
                                     
2013-06-24
Please confirm that there will be a testcase - as requested by SQE and I will approve this request.
                                     
2013-06-25
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.
                                     
2013-06-25



Hardware and Software, Engineered to Work Together