JDK-5040973 : SIGSEGV in Type*Type::meet(const Type*)const+0x0
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 1.3.1_06,5.0
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_9,windows_xp
  • CPU: x86,sparc
  • Submitted: 2004-04-30
  • Updated: 2004-05-11
  • Resolved: 2004-05-11
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.
Other Other
1.3.1_16Fixed 1.4.2_08Fixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Description

Name: tb29552			Date: 04/30/2004


#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  SIGSEGV (0xb) at pc=0xfe8e5000, pid=22268, tid=7
#
# Java VM: Java HotSpot(TM) Server VM (1.5.0-tbell-2004_04_28.13-41-07 mixed mode)
# Problematic frame:
# V  [libjvm.so+0xe5000]
#

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

Current thread (0x0012b828):  JavaThread "CompilerThread0" daemon [_thread_in_native, id=7]

siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x00000000
;; si_signo=11	SIGSEGV
;; si_code=1	SEGV_MAPERR /* Address not mapped to object.  */

Registers:
 O0=0x00000000 O1=0x000e7478 O2=0x00000e81 O3=0x001ba508
 O4=0x000fc144 O5=0x000fc168 O6=0xfb57e7c8 O7=0xfe8e9248
 G1=0xfe8e9248 G2=0x00003a04 G3=0x0035cec8 G4=0x00000004
 G5=0x0035cec8 G6=0x00000000 G7=0xff270c00 Y=0x00000000
 PC=0xfe8e5000 nPC=0xfe8e5004


Top of Stack: (sp=0xfb57e7c8)
0xfb57e7c8:   00001000 fb57ee24 fe8fc78c fef17c0c
0xfb57e7d8:   fea7a158 00000000 00001000 00000001
0xfb57e7e8:   fb57edfc 000fc144 0036a990 fb57ee18
0xfb57e7f8:   00000100 00000000 fb57e828 fe9cdb98
0xfb57e808:   fe91c9e8 fe903a94 0012a218 00000000
0xfb57e818:   00000010 00000002 fe91c9e8 fe903a94
0xfb57e828:   fb57ef3c fe8e3d34 00000001 00000204
0xfb57e838:   0036ab90 00000204 fe8e90f0 fef338ac 

Instructions: (pc=0xfe8e5000)
0xfe8e4ff0:   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xfe8e5000:   d4 02 20 00 ca 02 a0 10 81 c1 40 00 01 00 00 00 
;; 00000000fe8e4ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
;; ---------------
;; 00000000fe8e5000 d4 02 20 00             ld  [ %o0 ], %o2
;; 00000000fe8e5004 ca 02 a0 10             ld  [ %o2 + 0x10 ], %g5
;; 00000000fe8e5008 81 c1 40 00             jmp  %g5
;; 00000000fe8e500c 01 00 00 00             nop 

Stack: [0xfb500000,0xfb580000),  sp=0xfb57e7c8,  free space=505k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xe5000] ;; const Type*Type::meet(const Type*)const+0x0
V  [libjvm.so+0x1cdba0] ;; void PhaseIterGVN::optimize()+0xb4
V  [libjvm.so+0x1e9ae0] ;; PhaseIdealLoop::PhaseIdealLoop(PhaseIterGVN&,const PhaseIdealLoop*,int)+0xc58
V  [libjvm.so+0x265614] ;; void Compile::Optimize()+0x17c
V  [libjvm.so+0x264c94] ;; Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,int)+0xba0
V  [libjvm.so+0x25a950] ;; void C2Compiler::compile_method(ciEnv*,ciMethod*,int)+0xb8
V  [libjvm.so+0x25b0c8] ;; void CompileBroker::invoke_compiler_on_method(CompileTask*)+0x45c
V  [libjvm.so+0x30b3a8] ;; void CompileBroker::compiler_thread_loop()+0x454
V  [libjvm.so+0x2b5244] ;; void JavaThread::run()+0x240
V  [libjvm.so+0x2b018c] ;; _start+0x144


Current CompileTask:
opto:  1% !   com.f1j.ss.View.setColWidthAuto(Lcom/f1j/ss/Sheet;IIIIZ)V @ 173 (1151 bytes)


---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x0012d738 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=9]
  0x0012c690 JavaThread "CompilerThread1" daemon [_thread_blocked, id=8]
=>0x0012b828 JavaThread "CompilerThread0" daemon [_thread_in_native, id=7]
  0x0012a920 JavaThread "AdapterThread" daemon [_thread_blocked, id=6]
  0x001295e8 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=5]
  0x0011e800 JavaThread "Finalizer" daemon [_thread_blocked, id=4]
  0x0011e408 JavaThread "Reference Handler" daemon [_thread_blocked, id=3]
  0x00037840 JavaThread "main" [_thread_in_vm, id=1]

Other Threads:
  0x0011abb8 VMThread [id=2]
  0x0012e988 WatcherThread [id=10]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 def new generation   total 2112K, used 1882K [0xf0400000, 0xf0620000, 0xf1950000)
  eden space 2048K,  88% used [0xf0400000, 0xf05c6b40, 0xf0600000)
  from space 64K,  99% used [0xf0600000, 0xf060fff8, 0xf0610000)
  to   space 64K,   0% used [0xf0610000, 0xf0610000, 0xf0620000)
 tenured generation   total 1408K, used 258K [0xf1950000, 0xf1ab0000, 0xf4400000)
   the space 1408K,  18% used [0xf1950000, 0xf1990b70, 0xf1990c00, 0xf1ab0000)
 compacting perm gen  total 16384K, used 4409K [0xf4400000, 0xf5400000, 0xf8400000)
   the space 16384K,  26% used [0xf4400000, 0xf484e670, 0xf484e800, 0xf5400000)
No shared spaces configured.

(Incident Review ID: 260148) 
======================================================================

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger-beta2 FIXED IN: tiger-beta2 INTEGRATED IN: tiger-b51 tiger-beta2
14-06-2004

EVALUATION ###@###.### 2004-05-03 With java_g I got the next assert: # Error: assert(t != 0,"must set before get") An other missing dead loop check. This time in CMoveINode::Ideal(). CMoveI node references to itself (dead loop): [t@7 l@7]: print n->dump(2) 2122 Bool === _ 2121 [[ 3505 ]] [le] 2110 Proj === 2094 [[ 2121 3505 ]] #5 3505 CMoveI === _ 2122 2110 3505 [[ 2121 2163 3505 2137 1931 2094 2102 ]] #int The common code in CMoveNode::Ideal() doesn't have dead loop check. As result we execute transformation wich leads to the assert: =>[1] report_assertion_failure(file_name = 0xfec53ba4 "/net/jano/export/hotspot/users2/kvn/5035395/src/share/vm/opto/phaseX.hpp", line_no = 155, message = 0xfec53bed "assert(t != 0,"must set before get")"), line 208 in "/net/jano/export/hotspot/users2/kvn/5035395/src/share/vm/utilities/debug.cpp" [2] PhaseTransform::type(this = 0xf9b7e8bc, n = 0x235b88), line 155 in "/net/jano/export/hotspot/users2/kvn/5035395/src/share/vm/opto/phaseX.hpp" [3] CMoveINode::Ideal(this = 0x235b88, phase = 0xf9b7e8bc, can_reshape = 1), line 210 in "/net/jano/export/hotspot/users2/kvn/5035395/src/share/vm/opto/connode.cpp" [4] PhaseIterGVN::transform_old(this = 0xf9b7e8bc, n = 0x3454d8), line 954 in "/net/jano/export/hotspot/users2/kvn/5035395/src/share/vm/opto/phaseX.cpp" [5] PhaseIterGVN::optimize(this = 0xf9b7e8bc), line 838 in "/net/jano/export/hotspot/users2/kvn/5035395/src/share/vm/opto/phaseX.cpp"
11-06-2004

PUBLIC COMMENTS .
10-06-2004

SUGGESTED FIX ###@###.### 2004-05-03 Add the dead loop check into CMoveNode::Ideal(). Also add TOP inputs checks to skip transformations. http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/export2/archived_workspaces/main/c2_baseline/2004/20040504140346.kvn.5040973/workspace/webrevs/webrev-2004.05.04/index.html ------------------------------------ ###@###.### 2004-06-07 We found problem in this fix. See bug 5059097. Changes from both bugs should be used if you need to backport the fix for the problem.
07-06-2004