United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6592707 REGRESSION: Java 64-Bit Server VM sparcv9 crash with unhandled implicit exception in compiled code
6592707 : REGRESSION: Java 64-Bit Server VM sparcv9 crash with unhandled implicit exception in compiled code

Details
Type:
Bug
Submit Date:
2007-08-14
Status:
Closed
Updated Date:
2011-01-31
Project Name:
JDK
Resolved Date:
2010-02-12
Component:
hotspot
OS:
solaris
Sub-Component:
compiler
CPU:
sparc
Priority:
P1
Resolution:
Fixed
Affected Versions:
6u3
Fixed Versions:
hs11

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

Sub Tasks

Description
Java 64-Bit Server VM sparcv9 crash with unhandled implicit exception in compiled code:
Internal Error (nmethod.cpp:1707), pid=2272, tid=2. The following tests that use display lead to this vm crash:

jit/common/misctests/fpustack
regression/jit/4141334/SwingMark
nsk/regression/b4224902	
nsk/regression/b4224903	
nsk/regression/b4237950	
nsk/regression/b4244156	
nsk/regression/b4261880	
nsk/regression/b4265661	
nsk/regression/b4268494	
nsk/regression/b4270668	
nsk/regression/b4296365	
nsk/regression/b4501529	
nsk/stress/stack/b4525850
nsk/stress/jck12a/jck12a012	
nsk/stress/jck12a/jck12a016	
nsk/stress/jck12a/jck12a017	
nsk/stress/thread/thread003	
nsk/stress/thread/thread004	
nsk/stress/jck60/jck60015	
nsk/stress/jck60/jck60016	
nsk/stress/jck60/jck60018	
nsk/stress/jck60/jck60019	
nsk/stress/jck60/jck60024	
nsk/stress/jck60/jck60026

The tests pass with jdk 6 u2 and only 64-bit VM effected the tests pass with 32-bit VM. 
The crash occur only at Solaris sparc OS (Solaris 11 and Solaris 10 checked).

= How to reproduce 

1. logon to butters.russia or or any other solaris sparc

login details in comments

2. cd /net/vice/export/stt/newroot/results/6u3/b02/vm_1/vm/solaris11-sparcv9/server/comp/vm-vm_6-ur_server_comp_solaris11-sparcv92007-08-06-15-49-12/ResultDir/fpustack

3. ksh fpustack.tlog

4. you can use:

fpustack-u2.tlog to check with u2 that test pass
fpustack-sparc.tlog check with 32-bit vm that test pass

= Full hs err log

Available in comments.

                                    

Comments
SUGGESTED FIX

PRT webrev:

http://prt-web.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2007/20070910113317.rasbold.6592707/workspace/webrevs/webrev-2007.09.10/index.html
                                     
2007-09-10
EVALUATION

Postaloc transformations treat CastX2P nodes as ideal copies and therefore are considered interchangeable with a MachSpillCopy. Under the right conditions, postaloc will eliminate copies so that a safepoint node has a CastX2P as input.  A CastX2P node should not appear as input to JVMState information, as FillLocArray can not properly deal with native pointers.
                                     
2007-09-06
SUGGESTED FIX

Change formssel.cpp to no longer mark CastX2P and CastP2X nodes as ideal_copies.  
Postaloc will then no longer treat them as interchangeable with plain
MachSpillCopies, and the CastX2P node will not appear as an input to JVM state
information. 
*** (#1 of 1): [ UNSAVED ] ###@###.###
                                     
2007-09-06
EVALUATION

The problme stems from C2 confusing two different uses of RawPtr types.  Both
a jsr return bci and an unsafe native pointer are represented as RawPtrs.  In 64
bit VMs, the stack representation differs.
                                     
2007-09-04
EVALUATION

In compiling sun/awt/X11/XAtom.getAtomListProperty, C2 is misaligning a pointer
(cast from a long in an unsafe native) in the debug info at a deoptimization point.

The debug info has the two entries as a value/deaddeaf pair, when it should be 
a deaddeaf/value pair.

*** (#1 of 1): [ UNSAVED ] ###@###.###
                                     
2007-08-29
WORK AROUND

Use this VM option:
-XX:CompileCommand=exclude,sun/awt/X11/XAtom,getAtomListProperty
                                     
2007-08-28



Hardware and Software, Engineered to Work Together