United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-5040973 SIGSEGV in Type*Type::meet(const Type*)const+0x0
JDK-5040973 : SIGSEGV in Type*Type::meet(const Type*)const+0x0

Details
Type:
Bug
Submit Date:
2004-04-30
Status:
Resolved
Updated Date:
2004-05-11
Project Name:
JDK
Resolved Date:
2004-05-11
Component:
hotspot
OS:
solaris_9,windows_xp
Sub-Component:
compiler
CPU:
x86,sparc
Priority:
P3
Resolution:
Fixed
Affected Versions:
1.3.1_06,5.0
Fixed Versions:
5.0 (b51)

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

Sub Tasks

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
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.

                                     
2004-06-07
PUBLIC COMMENTS

.
                                     
2004-06-10
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"
                                     
2004-06-11
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
tiger-beta2

FIXED IN:
tiger-beta2

INTEGRATED IN:
tiger-b51
tiger-beta2


                                     
2004-06-14



Hardware and Software, Engineered to Work Together