JDK-6730192 : expression stack wrong at deoptimization point
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs10
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: linux
  • CPU: x86
  • Submitted: 2008-07-25
  • 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
6u14Fixed 7Fixed hs14Fixed
Related Reports
Relates :  
New failure after 6726504 fix.

intelsdv20% cp -R /net/sqenfs-1.sfbay/export1/comp/vm/testbase/jtreg/7/HS_REGRESSION/test/closed/compiler/deoptimization ./
intelsdv20% cd deoptimization
intelsdv20% javac DeoptDoubleWord.java
intelsdv20% unzip -q /net/prt-archiver/data/jprt/archive/2008/07/2008-07-21-204207.rasbold.6726504/bundles/solaris_x64_5.10-fastdebug.zip
intelsdv20% bin/java -d64 -XX:+PrintCompilation -Xbatch -XX:CICompilerCount=1 -XX:-DoEscapeAnalysis -XX:-UseCompressedOops -XX:+DeoptimizeALot DeoptDoubleWord
VM option '+PrintCompilation'
VM option 'CICompilerCount=1'
VM option '-DoEscapeAnalysis'
VM option '-UseCompressedOops'
VM option '+DeoptimizeALot'
  1%  b   DeoptDoubleWord$doubleTest1::iterative_fact @ 542 (563 bytes)
  2%  b   DeoptDoubleWord$doubleTest2::run @ 4 (51 bytes)
  3%  b   DeoptDoubleWord$doubleTest3::loop @ 6 (17 bytes)
  4%  b   DeoptDoubleWord$longTest::run @ 4 (51 bytes)
  5%  b   DeoptDoubleWord$longTest3::loop @ 6 (17 bytes)
# To suppress the following error report, specify this argument  1   b   DeoptDoubleWord$doubleTest1::i
t# after -XX: or in .hotspotrc:  SuppressErrorAt=e/frame_x86.cppr:294
e# A fatal error has been detected by the Java Runtime Environment:
f#  acInternal Errort (563 bytes)
 (/tmp/jprt-jprtadm/P1/B/204207.rasbold/source/src/cpu/x86/vm/frame_x86.cpp:294), pid=18554, tid=19
#  Error: assert((intptr_t) fp() > (intptr_t) result,"result must <  than frame pointer")
# Java VM: OpenJDK 64-Bit Server VM (14.0-b01-2008-07-21-204207.rasbold.6726504-fastdebug mixed mode solaris-amd64 )
# An error report file with more information is saved as:
# /export/kvn/jdiregression/deoptimization/hs_err_pid18554.log
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
Current thread is 19
Dumping core ...

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/3e333d6f35dd

EVALUATION Don't pop the stack before adding a safepoint.