JDK-7017746 : Regression : C2 compiler crash due to SIGSEGV in PhaseCFG::schedule_early()
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 6
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-02-07
  • Updated: 2011-12-12
  • 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
6u25Fixed 7Fixed hs20Fixed
Related Reports
Relates :  
Description
SYNOPSIS
--------
C2 compiler crash due to SIGSEGV in PhaseCFG::schedule_early()

OPERATING SYSTEMS
-----------------
Solaris

JDK VERSION
-----------
Failure only occurs from 6u4 onwards.
Tested with 6u23, 6u13, 6u4, 6u3, 6u2, 6u1 and 6 GA
Also occurs with JDK7 (tested with b127).
Does not occur with 5.0.

REPRODUCTION INSTRUCTIONS
-------------------------
Full instructions are included in the testcase package provided.  See comments for link to download the testcase package.

The following crash will occur, always during compilation of the same Java method:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xfe8b3138, pid=3170, tid=23
#
# JRE version: 6.0_23-b05
# Java VM: Java HotSpot(TM) Server VM (19.0-b09 mixed mode solaris-sparc )
# Problematic frame:
# V  [libjvm.so+0x4b3138]
#
# An error report file with more information is saved as:
# /home/cheesemp/test/sharejava5000/share/sample/hs_err_pid3170.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

-----------------  lwp# 23 / thread# 23  --------------------
 ff2caa58 _lwp_kill (6, 0, ff342f18, feb4dc34, ffffffff, 6) + 8
 ff24194c abort    (2da50, 1, fec78c78, fcb78, ff3413d8, 0) + 110
 feb4dc34 __1cCosFabort6Fb_v_ (1, fedccd14, 1, fedb2000, 1ad14, 1ac00) + 5c
 fec78c78 __1cHVMErrorOreport_and_die6M_v_ (fedf40f4, fede6841, 1, fedfa030, fedcccec, 0) + cec
 fe5c5e74 JVM_handle_solaris_signal (b, b66fe828, fff83d63, 7c000, 1dd000, 40c00) + ae4
 ff2c6e78 __sighndlr (b, b66fe828, b66fe570, fe5c5358, 0, 1) + c
 ff2bb558 call_user_handler (b, ffbffeff, c, 0, fee9aa00, b66fe570) + 3b8
 ff2bb72c sigacthandler (b, b66fe828, b66fe570, 8, fee9aa00, fe5ab74c) + 4c
 --- called from signal handler with signal 11 (SIGSEGV) ---
 fe8b3138 __1cIPhaseCFGOschedule_early6MrnJVectorSet_rnJNode_List__b_ (b66feba4, b66fe9e8, b66fe9d8, 0, 1, feddb434) + 1
ec
 fe5ab74c __1cIPhaseCFGQGlobalCodeMotion6MrnHMatcher_IrnJNode_List__v_ (b66feba4, b66fec18, 362, b66ff010, 1c34f0, 97ca7
c) + 1a0
 fe5ad0b4 __1cHCompileICode_Gen6M_v_ (b66ffbe4, b66ff578, 0, fedb2000, b66ffbe4, b66feba4) + 31c
 fe80ad78 __1cHCompile2t5B6MpnFciEnv_pnKC2Compiler_pnIciMethod_ibb_v_ (b66ff578, 97ca88, 2c7e0, fee023dc, 3c3774, 503dc)
 + da0
 fe5c6dfc __1cKC2CompilerOcompile_method6MpnFciEnv_pnIciMethod_i_v_ (2c7e0, b66ffbe4, 17677b8, ffffffff, fecb8890, 0) +
a0
 fe5c7c88 __1cNCompileBrokerZinvoke_compiler_on_method6FpnLCompileTask__v_ (640128, d8c00, e5, 0, fe5c6d5c, 1dd000) + 9f
c
 fe6384e4 __1cNCompileBrokerUcompiler_thread_loop6F_v_ (fedf30b4, 1dd000, 1c3460, 2fc58, 1dde8c, 1) + 80c
 fec2318c __1cKJavaThreadRthread_main_inner6M_v_ (1dd000, 6, fedee064, 17, fedb2000, 0) + 48
 feb4ccbc java_start (1dd000, c77, fedb2000, fed33c51, 1de670, fee02a2c) + 22c
 ff2c6d4c _lwp_start (0, 0, 0, 0, 0, 0)

Sometimes the crashing thread looks slightly different:

-----------------  lwp# 23 / thread# 23  --------------------
 ff2caa58 _lwp_kill (6, 0, ff342f18, feb4dc34, ffffffff, 6) + 8
 ff24194c abort    (2da50, 1, fec78c78, fcb78, ff3413d8, 0) + 110
 feb4dc34 __1cCosFabort6Fb_v_ (1, fedccd14, 1, fedb2000, 1ad14, 1ac00) + 5c
 fec78c78 __1cHVMErrorOreport_and_die6M_v_ (fedf40f4, fede6841, 1, fedfa030, fedcccec, 0) + cec
 fe5c5e74 JVM_handle_solaris_signal (b, b66fe6a8, fff83d63, 7c000, 1dd000, 40c00) + ae4
 ff2c6e78 __sighndlr (b, b66fe6a8, b66fe3f0, fe5c5358, 0, 1) + c
 ff2bb558 call_user_handler (b, ffbffeff, c, 0, fee9aa00, b66fe3f0) + 3b8
 ff2bb72c sigacthandler (b, b66fe6a8, b66fe3f0, 8, fee9aa00, fe5ab74c) + 4c
 --- called from signal handler with signal 11 (SIGSEGV) ---
 b66fe868, b66fe858, 0, 1, feddb434) + 1ecJVectorSet_rnJNode_List__b_ (b66fea24,
 fe5ab74c __1cIPhaseCFGQGlobalCodeMotion6MrnHMatcher_IrnJNode_List__v_ (b66fea24, b66fea98, 362, b66fee90, 1c34f0, 1653b
a4) + 1a0
 fe5ad0b4 __1cHCompileICode_Gen6M_v_ (b66ffa64, b66ff3f8, 0, fedb2000, b66ffa64, b66fea24) + 31c
 fe80ad78 __1cHCompile2t5B6MpnFciEnv_pnKC2Compiler_pnIciMethod_ibb_v_ (b66ff3f8, de4a80, 2c7e0, fee023dc, 18f7eb4, 503dc
) + da0
 fe5c6dfc __1cKC2CompilerOcompile_method6MpnFciEnv_pnIciMethod_i_v_ (2c7e0, b66ffa64, 7e5a38, ffffffff, fecb8890, 0) + a
0
 fe5c7c88 __1cNCompileBrokerZinvoke_compiler_on_method6FpnLCompileTask__v_ (7000c8, d8c00, e9, 0, fe5c6d5c, 1dd000) + 9f
c
 fe6384e4 __1cNCompileBrokerUcompiler_thread_loop6F_v_ (fedf30b4, 1dd000, 1c3460, 2fc58, 1dde8c, 1) + 80c
 fec2318c __1cKJavaThreadRthread_main_inner6M_v_ (1dd000, 6, fedee064, 17, fedb2000, 0) + 48
 feb4ccbc java_start (1dd000, c62, fedb2000, fed33c51, 1de670, fee02a2c) + 22c
 ff2c6d4c _lwp_start (0, 0, 0, 0, 0, 0)

WORKAROUND
----------
1. Use C1 compiler
2. Exclude the problematic method from compilation.

Comments
EVALUATION http://hg.openjdk.java.net/hsx/hsx20/baseline/rev/57090cdd4e01
14-02-2011

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/ab42c7e1cf83
11-02-2011

EVALUATION Bug in adlc code which generates Expand() for mach nodes which have duplicated operands and TEMP. In this case it is cadd_cmpLTMaskNode node.
09-02-2011