JDK-6972540 : sun/nio/ch/SocketChannelImpl compilation crashed when executing CompileTheWorld
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: e6u21
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: linux
  • CPU: arm
  • Submitted: 2010-07-27
  • 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
6u25Fixed 7Fixed hs20Fixed
Related Reports
Relates :  
Relates :  
Description
Running java with CompileTheWorld option fails on ARM, PPC and x86 when compiling sun/nio/ch/SocketChannelImpl.
The problem is not reproducible on 6u21 baseline.

$JAVA_HOME/bin/java -Xbootclasspath/p:/java/embedded/users/vd156238/builds/6u21/b05/ejdk1.6.0_21_ppc/jre/lib/rt.jar -XX:+CompileTheWorld -Xcomp -XX:CompileTheWorldStartAt=7610  -XX:MaxPermSize=131072K -XX:ReservedCodeCacheSize=32m

# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/c1_LinearScan.cpp:3801
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/home/vd156238/projects/6u21/temp/src/share/vm/c1/c1_LinearScan.cpp:3801), pid=18194, tid=3717723312
#  assert(from_opr->type() == to_interval->type()) failed: move between different types
#
# JRE version: 6.0_21-b01
# Java VM: Java HotSpot(TM) Client VM (19.0-b02-internal-fastdebug compiled mode linux-ppc )
# An error report file with more information is saved as:
# /root/hs_err_pid18194.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp


SocketChannelImp::connect() is the method crashing during compilation.
from_opr->type() is T_ADDRESS
to_interval->type() is T_INT
mainline 6u23 crashes at the same spot, therefore not Embedded SE specific.
Redispatched.

CompileTheWorld (13266) : sun/nio/ch/SocketAdaptor
CompileTheWorld (13267) : sun/nio/ch/SocketChannelImpl$1
CompileTheWorld (13268) : sun/nio/ch/SocketChannelImpl
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/c1_LinearScan.cpp:3766
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/java/embedded/ws/j2se-baseline/1.6.0_23/hotspot.open/src/share/vm/c1/c1_LinearScan.cpp:3766), pid=12607, tid=2627398544
#  assert(from_opr->type() == to_interval->type()) failed: move between different types
#
# JRE version: 6.0_21-b05
# Java VM: OpenJDK Client VM (19.0-b04-internal-fastdebug compiled mode linux-x86 )
# An error report file with more information is saved as:
# /home/vd156238/hs_err_pid12607.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/87b64980e2f1
09-10-2010

EVALUATION 6972540: sun/nio/ch/SocketChannelImpl compilation crashed when executing CompileTheWorld Reviewed-by: kvn The fix 6932496 exposed T_ADDRESS as a constant so that deopt with jsr's could work properly. Since it didn't fully expose T_ADDRESS as a support lir type it create type mismatches that showed up in some complex cases. The fix is support T_ADDRESS in the LIR directly. Tested with full CTW.
30-09-2010

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/87b64980e2f1
23-09-2010

EVALUATION The fix for 6932496 allows T_ADDRESS into the LIR but doesn't really complete the job, leading to mismatches because we sometimes treat T_ADDRESS as T_INT. LIR_Opr needs to support T_ADDRESS.
11-08-2010