JDK-6880052 : SIGSEGV in GraphKit::null_check_common()
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs17
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris
  • CPU: x86
  • Submitted: 2009-09-08
  • 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
6u21Fixed 7Fixed hs17Fixed
Related Reports
Relates :  
Description
Nightly testing failed:

nsk/stress/jck60/jck60018

Regression after 6875577 changes.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xfd411394, pid=7514, tid=12
#
# JRE version: 7.0-b70
# Java VM: OpenJDK Server VM (17.0-b01-2009-08-31-153409.cf231476.6876276-fastdebug compiled mode solaris-sparc )
# Problematic frame:
# V  [libjvm.so+0x811394]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x001b2000):  JavaThread "CompilerThread1" daemon [_thread_in_native, id=12, stack(0xb5280000,0xb5300000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x00000008;; 

Registers:
 O0=0x00000000 O1=0x00507330 O2=0x00106320 O3=0x000fefa0
 O4=0xfef52140 O5=0x000fec00 O6=0xb52fd250 O7=0xfd41138c
 G1=0xffedb337 G2=0xb52ff264 G3=0x010537c4 G4=0x000007e8
 G5=0x00082c00 G6=0x00000000 G7=0xfc915200 Y=0x00000000
 PC=0xfd411394 nPC=0xfd411398


Top of Stack: (sp=0xb52fd250)
0xb52fd250:   000001fa fee531a0 00000000 fe57a3e0
0xb52fd260:   feeae1b5 00507330 00000400 fddff9bc
0xb52fd270:   b52fdf24 0000000d 0000000c 00507330
0xb52fd280:   b52fd474 0053e160 b52fd330 fd417d90
0xb52fd290:   00000000 00000000 00b2a2c8 00000006
0xb52fd2a0:   01fefefe 00b2a2c8 00000006 01fefefe
0xb52fd2b0:   01441278 00000016 009712f8 00000016
0xb52fd2c0:   00000016 01441278 01441278 00000016 

Instructions: (pc=0xfd411394)
0xfd411384:   d4 06 e0 00 ee 02 a0 48 9f c5 c0 00 90 10 00 1b
0xfd411394:   c4 02 20 08 80 a0 a0 00 12 40 00 2c 0b 00 02 0b 
;; 00000000fd411384 d4 06 e0 00 ee 02 a0 48 9f c5 c0 00 90 10 00 1b
;; ---------------
;; 00000000fd411394 c4 02 20 08             ld  [ %o0 + 8 ], %g2
;; 00000000fd411398 80 a0 a0 00             cmp  %g2, 0
;; 00000000fd41139c 12 40 00 2c             bne,pn   %icc, 0x00000000fd41144c
;; 00000000fd4113a0 0b 00 02 0b             sethi  %hi(0x82c00), %g5
;; 
Stack: [0xb5280000,0xb5300000],  sp=0xb52fd250,  free space=1f4b52fd250k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x811394];;  __1cIGraphKitRnull_check_common6MpnENode_nJBasicType_bp2_2_+0x3b0
V  [libjvm.so+0x817d98];;  __1cIGraphKitOnull_check_oop6MpnENode_p2b_2_+0x3c
V  [libjvm.so+0x81f308];;  __1cIGraphKitNgen_checkcast6MpnENode_2p2_2_+0x570
V  [libjvm.so+0xfe98c8];;  __1cFParseMdo_checkcast6M_v_+0x1e8
V  [libjvm.so+0xfe2b6c];;  __1cFParsePdo_one_bytecode6M_v_+0x15ee0
V  [libjvm.so+0xfaf8a4];;  __1cFParseMdo_one_block6M_v_+0x6c8
V  [libjvm.so+0xfa98bc];;  __1cFParseNdo_all_blocks6M_v_+0x4b0
V  [libjvm.so+0xfa931c];;  __1cFParse2t6MpnIJVMState_pnIciMethod_f_v_+0xe34
V  [libjvm.so+0x4684ac];;  __1cOParseGeneratorIgenerate6MpnIJVMState__2_+0x180
V  [libjvm.so+0x46b5dc];;  __1cWPredictedCallGeneratorIgenerate6MpnIJVMState__2_+0x4e0
V  [libjvm.so+0x72fe40];;  __1cFParseHdo_call6M_v_+0x668
V  [libjvm.so+0xfe2b5c];;  __1cFParsePdo_one_bytecode6M_v_+0x15ed0
V  [libjvm.so+0xfaf8a4];;  __1cFParseMdo_one_block6M_v_+0x6c8
V  [libjvm.so+0xfa98bc];;  __1cFParseNdo_all_blocks6M_v_+0x4b0
V  [libjvm.so+0xfa931c];;  __1cFParse2t6MpnIJVMState_pnIciMethod_f_v_+0xe34
V  [libjvm.so+0x4684ac];;  __1cOParseGeneratorIgenerate6MpnIJVMState__2_+0x180
V  [libjvm.so+0x5ff068];;  __1cHCompile2t6MpnFciEnv_pnKC2Compiler_pnIciMethod_ibb_v_+0x14e0
V  [libjvm.so+0x466c04];;  __1cKC2CompilerOcompile_method6MpnFciEnv_pnIciMethod_i_v_+0xc0
V  [libjvm.so+0x61b274];;  __1cNCompileBrokerZinvoke_compiler_on_method6FpnLCompileTask__v_+0x1be0
V  [libjvm.so+0x618b2c];;  __1cNCompileBrokerUcompiler_thread_loop6F_v_+0x14ac
V  [libjvm.so+0x11cc7ec];;  __1cKJavaThreadRthread_main_inner6M_v_+0x228
V  [libjvm.so+0x11cc5ac];;  __1cKJavaThreadDrun6M_v_+0x534
V  [libjvm.so+0xf6aea8];;  java_start+0x1ac


Current CompileTask:
C2:2769   b  java.awt.image.BufferedImage.getRGB(IIII[III)[I (231 bytes)

...

VM Arguments:
jvm_args: -Xcomp -XX:-PrintVMOptions -XX:CompileThreshold=100 -XX:+DoEscapeAnalysis -Xverify:all 
java_command: nsk.stress.share.StressTestRunner -testList /export/local/common/testbase/6/vm/vm/src/nsk/stress/jck60//jck60018/tests -stress:indulgent
Launcher Type: SUN_STANDARD

Environment Variables:
CLASSPATH=/export/local/20206.JDK7.NIGHTLY.VM+solaris-sparc_server_comp_nsk.stress.testlist/results/ResultDir/jck60018:/net/sqenfs-1.sfbay/export1/comp/vm/testbase/jck/6b/dist/JCK-runtime-6b/classes:/export/local/common/testbase/6/vm/vm/bin/classes:/export/local/common/jdk/baseline/solaris-sparc/lib/tools.jar
PATH=/export/local/common/jdk/baseline/solaris-sparc/bin:/bin:/usr/bin
LD_LIBRARY_PATH=/export/local/common/jdk/baseline/solaris-sparc/jre/lib/sparc/server:/export/local/common/jdk/baseline/solaris-sparc/jre/lib/sparc:/export/local/common/jdk/baseline/solaris-sparc/jre/../lib/sparc:/net/sqenfs-1.sfbay/export1/comp/vm/testbase/jck/6b/jckjni/solaris-sparcv9/32bit/:/export/local/common/jdk/baseline/solaris-sparc/jre/lib/sparc/server

Comments
PUBLIC COMMENTS Problem: After 6875577 fix the method do_null_check() checks for unloaded klass also for arrays. But array type may not have klass, for example, when element type is Bottom. The bug case has Phi node which merges several CheckCastPP with different types so its type is bottom[int:>=0]. Solution: Check that a klass is not NULL before the unloaded check.
09-09-2009

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/26fbe81d30cf
09-09-2009

SUGGESTED FIX Check that a klass is not NULL before the unloaded check.
08-09-2009

EVALUATION After 6875577 fix the method do_null_check() checks for unloaded klass also for arrays. But array type may not have klass, for example, when element type is Bottom. The bug case has Phi node which merges several CheckCastPP with different types so its type is bottom[int:>=0].
08-09-2009