JDK-6290818 : C2 64bits VM on sparc assert("cannot relocate data outside code boundaries")
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 6
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_9
  • CPU: sparc
  • Submitted: 2005-06-25
  • Updated: 2010-04-03
  • Resolved: 2005-07-13
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
6 b43Fixed
Related Reports
Relates :  
Description
jano% pwd
/net/vmsqe.sfbay/export/nightly/mantis/DTWS/results/06-23-05/ServerVM/64BITSOLSPARC/comp/C2_Baseline/nsk.stress-NIGHTLY-C2_Baseline-ServerVM-comp-64BITSOLSPARC-2005-06-23-21-04-49/ResultDir.run1/jck12a004

jano% echo $CLASSPATH .:/net/vmsqe.sfbay/export/backup/UNIFIED-DTF/DTWS/suites/nsk.stress/testbase/src/nsk/stress/share/classes:/net/vmsqe.sfbay/export/backup/UNIFIED-DTF/DTWS/suites/nsk.stress/testbase/JCKS//JCK-runtime-lang-12a/classes:/net/vmsqe.sfbay/export/backup/UNIFIED-DTF/DTWS/suites/nsk.stress/testbase/JCKS//JCK-runtime-lang-12a/javatest.jar

jano% /net/vmsqe.sfbay/export/nightly/mantis/JDK/c2_baseline/jdk1.6/solaris-sparc/bin/java -d64 -server -Xcomp -XX:CompileThreshold=100 jck12a004 -stress:indulgent
VM option 'CompileThreshold=100'
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/codeBuffer.cpp:285]
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  Internal Error (/net/prt-sparc-q2-13/tmp/PrtBuildDir2/workspace/src/share/vm/asm/codeBuffer.cpp, 285 [ Patched ]), pid=403, tid=25
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20050623143829.sgoldman.6288902-debug compiled mode)
#
# Error: assert(start() <= at && at <= end()+1,"cannot relocate data outside code boundaries")
# An error report file with more information is saved as hs_err_pid403.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
Current thread is 25
Dumping core ...
Abort


###@###.### 2005-06-25 23:45:51 GMT

Comments
SUGGESTED FIX http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2005/20050629123407.jrose.mustang-jumptable/workspace/webrevs/webrev-2005.06.29/index.html ###@###.### 2005-06-30 21:07:30 GMT
30-06-2005

EVALUATION This problem can occur when the code cache overflows. Not all allocation failure paths in the new code are properly guarded. As a result, the compiler tries to keep generating code into a broken (unallocatable) code buffer, and various things go wrong, both SEGVs and assertion failures. I am able to reproduce the specific problem noted in this bug report about 10% of the time. About 50% of the time there is a SEGV of some sort. The problem shows up immediately and reliably with +CompileTheWorld plus +StressCodeBuffers, which is the preferred way to test the failure paths for code buffer allocation. ###@###.### 2005-06-29 02:00:24 GMT
29-06-2005