JDK-6968368 : SIGSEGV in the BCEscapeAnalyzer::copy_dependencies(Dependencies*)+0x105
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs19
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: x86
  • Submitted: 2010-07-12
  • Updated: 2012-02-01
  • 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
6u21pFixed 7Fixed hs19Fixed
Related Reports
Relates :  
Relates :  
Description
The test 
nsk/stress/jck60/jck60018
http://sqeweb.sfbay.sun.com/nfs/results/vm/gtee/HSX/PIT/VM/19/b04/jdk7b101_08/fastdebug/vm/linux-i586/server/comp/linux-i586_vm_server_fastdebug_comp_nsk.stress.testlist/ResultDir/jck60018

crashes with -server and -Xcomp.
It always crashes during compilation of
C2:2842   b  java.awt.image.LookupOp.filter(Ljava/awt/image/Raster;Ljava/awt/image/WritableRaster;)Ljava/awt/image/WritableRaster; (378 bytes)

You could reproduce this crash also with CompileTheWorld:
/net/sqenfs-1.sfbay/export1/comp/vm/jdk/hsx/19/pit/b04/jdk7b101/fastdebug/linux-i586/bin/java -Xbootclasspath/p:/net/sqenfs-1.sfbay/export1/comp/vm/jdk/hsx/19/pit/b04/jdk7b101/fastdebug/linux-i586/jre/lib/rt.jar -XX:+CompileTheWorld -XX:CompileTheWorldStartAt=7362


Here is the head of hs_err
;; Using jvm: "/export/local/common/jdk/baseline/linux-i586/jre/lib/i386/server/libjvm.so"
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xf679b9f5, pid=4015, tid=2921913232
#
# JRE version: 7.0-b99
# Java VM: Java HotSpot(TM) Server VM (19.0-b04-201007090738.et151817.hs19b04-fastdebug compiled mode linux-x86 )
# Problematic frame:
# V  [libjvm.so+0x2759f5]
#
# 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 (0xae822000):  JavaThread "CompilerThread1" daemon [_thread_in_native, id=4134, stack(0xae20d000,0xae28e000)]

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

Registers:
EAX=0x00000000, EBX=0xf70fff50, ECX=0x00000007, EDX=0xabababab
ESP=0xae28b540, EBP=0xae28b578, ESI=0x00000004, EDI=0x00000001
EIP=0xf679b9f5, CR2=0x00000044, EFLAGS=0x00010296

Top of Stack: (sp=0xae28b540)
0xae28b540:   abababab ad31fe40 ad31fe71 f679b8fe
0xae28b550:   ad31fe58 ae28b600 f6f995d3 f6f9ef30
0xae28b560:   f6f9eb72 f6f9eb69 abababab f70fff50
0xae28b570:   a1d49d78 9dcd6290 ae28b628 f6a3cc75
0xae28b580:   a1d49d78 9dcd6290 00000007 00000007
0xae28b590:   ad300010 00000001 ae28b5b8 f75f2f3c
0xae28b5a0:   ad300010 ad31fe40 ad31fe40 f6f99ac8
0xae28b5b0:   f6f995e7 f6f995cc ae28b618 ae28b600 

Instructions: (pc=0xf679b9f5)
0xf679b9e5:   00 83 ec 0c 8b 44 30 fc 89 45 f0 89 c2 8b 00 52
0xf679b9f5:   ff 50 44 83 c4 10 84 c0 75 1e 8b 45 ec 50 8b 45 
;; f679b9e5 00 83 ec 0c 8b 44       add    %al,0x448b0cec(%ebx)
;; f679b9eb 30 fc                   xor    %bh,%ah
;; f679b9ed 89 45 f0                mov    %eax,0xfffffff0(%ebp)
;; f679b9f0 89 c2                   mov    %eax,%edx
;; f679b9f2 8b 00                   mov    (%eax),%eax
;; f679b9f4 52                      push   %edx
;; ---------------
;; f679b9f5 ff 50 44                call   *0x44(%eax)
;; f679b9f8 83 c4 10                add    $0x10,%esp
;; f679b9fb 84 c0                   test   %al,%al
;; f679b9fd 75 1e                   jne    0xf679ba1d
;; f679b9ff 8b 45 ec                mov    0xffffffec(%ebp),%eax
;; f679ba02 50                      push   %eax
;; f679ba03 8b 45 ff                mov    0xffffffff(%ebp),%eax
;; 
Stack: [0xae20d000,0xae28e000],  sp=0xae28b540,  free space=1f9ae28ae60k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x2759f5];;  BCEscapeAnalyzer::copy_dependencies(Dependencies*)+0x105
V  [libjvm.so+0x516c75];;  ConnectionGraph::process_call_arguments(CallNode*, PhaseTransform*)+0x575
V  [libjvm.so+0x518da4];;  .L1119+0x68
V  [libjvm.so+0x51f1df];;  ConnectionGraph::compute_escape()+0x68f
V  [libjvm.so+0x5203f9];;  ConnectionGraph::do_analysis(Compile*, PhaseIterGVN*)+0x99
V  [libjvm.so+0x43ce96];;  Compile::Optimize()+0x9d6
V  [libjvm.so+0x43e5d4];;  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool)+0xe54
V  [libjvm.so+0x363a8e];;  C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x18e
V  [libjvm.so+0x4476c5];;  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x455
V  [libjvm.so+0x4489d3];;  CompileBroker::compiler_thread_loop()+0x5a3
V  [libjvm.so+0x9c646f];;  compiler_thread_entry(JavaThread*, Thread*)+0x4f
V  [libjvm.so+0x9d04a4];;  JavaThread::thread_main_inner()+0xf4
V  [libjvm.so+0x9d06a0];;  JavaThread::run()+0x1b0
V  [libjvm.so+0x867ee9];;  java_start(Thread*)+0xf9
C  [libpthread.so.0+0x61b5]


Current CompileTask:
C2:2842   b  java.awt.image.LookupOp.filter(Ljava/awt/image/Raster;Ljava/awt/image/WritableRaster;)Ljava/awt/image/WritableRaster; (378 bytes)

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/8099e71601df
21-07-2010

PUBLIC COMMENTS Changes for 6966411 moved escape analysis into Optimize() method after ResourceMark so on exit from Optimize() all data allocated in resource area is freed. bcEscapeAnalyzer uses resource area to keep dependency and bytecode analysis data and this data will be lost on exit from Optimize(). The method compilation could be retried (subsume_loads) with the same CI data but bcEscapeAnalyzer dependency and bytecode analysis data are not regenerated and contain garbage. Solution: Use GrowableArray and VectorSet allocated in ciEnv arena. Removed unused _stack field.
15-07-2010

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/8099e71601df
15-07-2010

EVALUATION Changes for 6966411 moved escape analysis into Optimize() method after ResourceMark so on exit from Optimize() all data allocated in resource area is freed. bcEscapeAnalyzer uses resource area to keep dependancy and bytecode analysis data and this data will be lost on exit from Optimize(). The method compilation could be retried (subsume_loads) with the same CI data but bcEscapeAnalyzer dependancy and bytecode analysis data are not regenerated and contain garbage.
13-07-2010