United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-8027751 : C1 crashes in Weblogic with G1 enabled

Details
Type:
Bug
Submit Date:
2013-11-04
Status:
Resolved
Updated Date:
2013-11-26
Project Name:
JDK
Resolved Date:
2013-11-05
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
x86
Priority:
P2
Resolution:
Fixed
Affected Versions:
hs25
Fixed Versions:
hs25 (b58)

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

Sub Tasks

Description
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/export/iggy/hotspot-comp/src/share/vm/c1/c1_LIR.hpp:419), pid=12527, tid=76
#  assert(is_single_cpu() && !is_virtual()) failed: type check
#
# JRE version: Java(TM) SE Runtime Environment (8.0-b112) (build 1.8.0-ea-b112)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0-b57-internal-fastdebug mixed mode solaris-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

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

Current thread (0x0000000000c6c800):  JavaThread "C1 CompilerThread14" daemon [_thread_in_native, id=76, stack(0xfffffd7fa48fb000,0xfffffd7fa49fb000)]

Stack: [0xfffffd7fa48fb000,0xfffffd7fa49fb000],  sp=0xfffffd7fa49f8180,  free space=1012k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x2c286d8]  void VMError::report(outputStream*)+0x92c
V  [libjvm.so+0x2c29c14]  void VMError::report_and_die()+0x56c
V  [libjvm.so+0x131d1db]  void report_vm_error(const char*,int,const char*,const char*)+0x55f
V  [libjvm.so+0xdc4e96]  RegisterImpl*LIR_OprDesc::as_register()const+0x6ea
V  [libjvm.so+0xe1cd20]  void LIR_Assembler::logic_op(LIR_Code,LIR_OprDesc*,LIR_OprDesc*,LIR_OprDesc*)+0x264
V  [libjvm.so+0xdfeb60]  void LIR_Assembler::emit_op2(LIR_Op2*)+0xb8
V  [libjvm.so+0xdfb868]  void LIR_Assembler::emit_code(BlockList*)+0x478
V  [libjvm.so+0xd33907]  int Compilation::emit_code_body()+0x20f
V  [libjvm.so+0xd34283]  int Compilation::compile_java_method()+0x81b
V  [libjvm.so+0xd3630f]  Compilation::Compilation #Nvariant 1(AbstractCompiler*,ciEnv*,ciMethod*,int,BufferBlob*)+0x5c3
V  [libjvm.so+0xd38d0b]  void Compiler::compile_method(ciEnv*,ciMethod*,int)+0x1cf
V  [libjvm.so+0x11f2b65]  void CompileBroker::invoke_compiler_on_method(CompileTask*)+0x4e1
V  [libjvm.so+0x11f2105]  void CompileBroker::compiler_thread_loop()+0x3c5
V  [libjvm.so+0x2a8cd35]  void JavaThread::thread_main_inner()+0x521
V  [libjvm.so+0x2a8c44b]  void JavaThread::run()+0x84f
V  [libjvm.so+0x25f64da]  java_start+0x1ce
C  [libc.so.1+0x12257d]  _thrp_setup+0xa5
C  [libc.so.1+0x122820]  _lwp_start+0x0

                                    

Comments
G1 barriers use logical operators (xor) on T_OBJECT mixed with T_LONG. The current implementation of logical operations on x86 in C1 doesn't allow for long operands to be on stack. There is a special code in the register allocator that force long arguments in registers. However T_OBJECT can be spilled, and in that case the xor emission will fail. 
                                     
2013-11-04
test JT_HS:compiler/6849574/Test.java is also affected 

----------messages:(3/89)----------
command: build Test
reason: Named class compiled on demand
elapsed time (seconds): 4.829
result: Passed. Build successful

#section:compile
----------messages:(3/191)----------
command: compile -XDignore.symbol.file=true /home/iignatye/ws/hotspot-comp/tip/test/compiler/6849574/Test.java
reason: .class file out of date or does not exist
elapsed time (seconds): 4.828
----------System.out:(0/0)----------
----------System.err:(2/161)----------
Note: /home/iignatye/ws/hotspot-comp/tip/test/compiler/6849574/Test.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
result: Passed. Compilation successful

#section:main
----------messages:(3/204)----------
command: main -XX:+UnlockDiagnosticVMOptions -XX:+VerifyBeforeGC Test
reason: User specified action: run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+VerifyBeforeGC Test 
elapsed time (seconds): 1.17
----------System.out:(23/1151)----------
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/c1_LIR.hpp:419
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/opt/jprt/T/P1/152837.amurillo/s/src/share/vm/c1/c1_LIR.hpp:419), pid=12878, tid=139671937423104
#  assert(is_single_cpu() && !is_virtual()) failed: type check
#
# JRE version: Java(TM) SE Runtime Environment (8.0-b114) (build 1.8.0-ea-fastdebug-b114)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0-b57-internal-201311011528.amurillo.hs25-b57-snapshot-fastdebug mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/iignatye/test/jtreg/JTwork/scratch/0/hs_err_pid12878.log
#
# Compiler replay data is saved as:
# /home/iignatye/test/jtreg/JTwork/scratch/0/replay_pid12878.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#
Current thread is 139671937423104
Dumping core ...
----------System.err:(0/0)----------

                                     
2013-11-04
URL:   http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/a905d33ce13a
User:  iveresov
Date:  2013-11-05 12:32:50 +0000

                                     
2013-11-05
URL:   http://hg.openjdk.java.net/hsx/hsx25/hotspot/rev/a905d33ce13a
User:  amurillo
Date:  2013-11-08 18:38:59 +0000

                                     
2013-11-08



Hardware and Software, Engineered to Work Together