JDK-4387520 : Kestrel: HotSpot Virtual Machine Error, Unexpected Signal 11
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 1.3.0
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_8
  • CPU: sparc
  • Submitted: 2000-11-09
  • Updated: 2009-06-25
  • Resolved: 2001-01-02
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 Other
1.3.0_02 02Fixed 1.3.1Fixed 1.4.0Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
When running Movex Nextgen, the JVM underneath crashes:

#
# HotSpot Virtual Machine Error, Unexpected Signal 11
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Error ID: 4F533F534F4C415249530E435050079A 01
#
# Problematic Thread: prio=5 tid=0x152c30 nid=0xa runnable
#

$ java -server -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Java HotSpot(TM) Server VM (build 1.3.0, mixed mode)

Core file can be found at:

/net/hansolo.holland/Halon/Distribution/Intentia/HotSpot-problem/core.gz

Dbx reveals:

t@10 (l@8) terminated by signal ABRT (Abort)
(dbx) where
current thread: t@10
=>[1] __sigprocmask(0x0, 0xabcffb48, 0x0, 0x0, 0x0, 0x0), at 0xff379bf0
  [2] _resetsig(0xff37c510, 0x0, 0x0, 0xabd01d78, 0xff38e000, 0x0), at 0xff36e620
  [3] _sigon(0xabd01d78, 0xff395990, 0x6, 0xabcffc1c, 0xabd01d78, 0xabcffc60), at 0xff36dd10
  [4] _thrp_kill(0x0, 0xa, 0x6, 0xff38e000, 0xa, 0xff33a428), at 0xff370e84
  [5] initstate(0x6, 0x0, 0x0, 0xffffffff, 0xff33a394, 0xabcffd70), at 0xff2c9db0
  [6] addsev(0xff336000, 0xabcffd70, 0x0, 0xfffffff8, 0x4, 0xabcffd91), at 0xff2b531c
  [7] os::abort(0x1, 0xfe3bff28, 0x267f8, 0xabcff, 0xfe419fe8, 0xabcffd8c), at 0xfe1d0fe4
  [8] report_error(0xe4, 0xabd0060c, 0x79a, 0xfe3bfd30, 0xfe477594, 0xfe419fe8), at 0xfe0c44d4
  [9] handle_unexpected_exception(0xfe419fe8, 0xb, 0xabd00d38, 0xfe2d2dd4, 0xfe2d2dd4, 0x0), at 0xfe1d29b0
  [10] JVM_handle_solaris_signal(0xfe419fe8, 0xfe2d2dd4, 0xfe2d2dd4, 0x0, 0xfe2d2dd4, 0x152c30), at 0xfe1d5b5c
  [11] __libthread_segvhdlr(0xb, 0xabd00d38, 0xabd00a80, 0xff38e000, 0xb, 0x0), at 0xff379194
  [12] __sighndlr(0xb, 0xabd00d38, 0xabd00a80, 0xff3790b0, 0xabd01e10, 0xabd01e00), at 0xff37bd04
  [13] sigacthandler(0xb, 0xabd01d78, 0xabd00a80, 0xff38e000, 0xabd01d78, 0xabd00d38), at 0xff378508
  ---- called from signal handler with signal 11 (SIGSEGV) ------
  [14] RegionNode::Ideal(0x4, 0xabd0118c, 0xabd012ac, 0xfe419fe8, 0x81b998, 0x0), at 0xfe2d2dd4
  [15] PhaseIterGVN::transform_old(0xabd0118c, 0xabd0118c, 0x81b998, 0xabd012ac, 0x81b998, 0xabd011b4), at 0xfe3867a0
  [16] PhaseIterGVN::optimize(0x4, 0x519178, 0x8345b4, 0xabd00f70, 0xfffffff8, 0x81b998), at 0xfe386114
  [17] PhaseIdealLoop::PhaseIdealLoop(0xabd00f70, 0x1706c8, 0x1, 0x8563ac, 0x400, 0x8a48c0), at 0xfe3404c4
  [18] Compile::Optimize(0xabd017c8, 0xabd016f8, 0x8d2fe0, 0xabd01420, 0x0, 0xabd0151c), at 0xfe2ed428
  [19] Compile::Compile(0x8d2fe0, 0xabd01b10, 0x277874, 0xabd01840, 0xabd018e0, 0xabd018f0), at 0xfe2ebaa4
  [20] C2Compiler::compile_method(0x28740, 0xabd01b10, 0x277874, 0x277788, 0xffffffff, 0x1), at 0xfe2cf204
  [21] CompileBroker::invoke_compiler_on_method(0x277788, 0xfe42dd4c, 0x277874, 0xfe4365d8, 0x0, 0x0), at 0xfe26aec8
  [22] CompileBroker::compiler_thread_loop(0x27d40, 0x152c30, 0xfe419fe8, 0xabd01d18, 0xfe419fe8, 0xffffffff), at 0xfe26aa7c
  [23] JavaThread::run(0xabb02000, 0xfe424624, 0xfe419fe8, 0x200000, 0x152c30, 0x200000), at 0xfe2346f0
  [24] _start(0xfe419fe8, 0xfdff5d18, 0x0, 0x5, 0x1, 0xfe401000), at 0xfe1cfc30

(dbx) threads
      t@1  a l@9  ?()   LWP suspended   in uname()
      t@2  b l@2  ?()   LWP suspended   in sysinfo()
      t@3         ?()   sleep on 0xff392a18     in _reap_wait()
      t@4  a l@3  _start()      LWP suspended   in uname()
      t@5  a l@4  _start()      LWP suspended   in uname()
      t@6  a l@1  _start()      LWP suspended   in uname()
      t@7  a l@7  _start()      LWP suspended   in _ptrace()
      t@8  a l@5  _start()      LWP suspended   in uname()
      t@9  a l@6  _start()      LWP suspended   in uname()
o>   t@10  a l@8  _start()      signal SIGABRT  in __sigprocmask()
     t@11  a l@10 _start()      LWP suspended   in sigacthandler()
     t@12  a l@11 _start()      LWP suspended   in _so_socket()
     t@13  a l@12 _start()      LWP suspended   in _so_socket()
     t@14  a l@13 _start()      LWP suspended   in _so_socket()
     t@15  a l@14 _start()      LWP suspended   in _so_socket()
     t@16  a l@15 _start()      LWP suspended   in _so_socket()
     t@17  a l@22 _start()      LWP suspended   in _ptrace()
     t@19  a l@17 _start()      LWP suspended   in sigacthandler()
     t@20  a l@18 _start()      LWP suspended   in _ptrace()
     t@21  a l@16 _start()      LWP suspended   in _ptrace()
     t@22  a l@21 _start()      LWP suspended   in _ptrace()
     t@24  a l@20 _start()      LWP suspended   in _so_socket()
     t@25  a l@19 _start()      LWP suspended   in sigacthandler()
     t@26  a l@23 _start()      LWP suspended   in sigacthandler()
     t@35  a l@25 _start()      LWP suspended   in sigacthandler()
     t@41  a l@26 _start()      LWP suspended   in uname()
(dbx) thread t@10
t@10 (l@8) stopped in __sigprocmask at 0xff379bf0
0xff379bf0: __sigprocmask+0x0008:       jmp     %o7 + 0x8

(/opt/SUNWspro/bin/../WS5.0/bin/sparcv9/dbx) frame 14
0xfe2d2dd4: Ideal+0x0300:       ld      [%o0], %g2
(/opt/SUNWspro/bin/../WS5.0/bin/sparcv9/dbx) regs
current thread: t@10
current frame:  [14]
g0-g3    0x00000000 0x00000000 0x0081c298 0x00000004
g4-g7    0x006d1478 0x00000000 0x00000000 0xabd01d78
o0-o3    0x00000000 0x00000003 0xabd012ac 0x0000000c
o4-o7    0x0081b9b0 0x00000003 0xabd00db8 0xfe2d2db8
l0-l3    0xfe3580fc 0xabd00f80 0x00000001 0x00000000
l4-l7    0x0081c29c 0x00000001 0x0085638c 0xabd01148
i0-i3    0x00000004 0xabd0118c 0xabd012ac 0xfe419fe8
i4-i7    0x0081b998 0x00000000 0xabd00e50 0xfe3867a0
y        0x00000000
ccr      0x00000000
pc       0xfe2d2dd4:Ideal+0x300 ld      [%o0], %g2
npc      0xfe2d2dd8:Ideal+0x304 ld      [%g2 + 0x1c], %l0

Looks like RegionNode::Ideal references a null pointer

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: ladybird merlin FIXED IN: ladybird merlin INTEGRATED IN: 1.3.0_02 ladybird-beta merlin-beta VERIFIED IN: 1.3.0_02 ladybird
14-06-2004

WORK AROUND None.
11-06-2004

EVALUATION current thread: t@10 [1] __sigprocmask(0x0, 0xabcffb48, 0x0, 0x0, 0x0, 0x0), at 0xff379bf0 [2] _resetsig(0xff37c510, 0x0, 0x0, 0xabd01d78, 0xff38e000, 0x0), at 0xff36e620 [3] _sigon(0xabd01d78, 0xff395990, 0x6, 0xabcffc1c, 0xabd01d78, 0xabcffc60), at 0xff36dd10 [4] _thrp_kill(0x0, 0xa, 0x6, 0xff38e000, 0xa, 0xff33a428), at 0xff370e84 [5] initstate(0x6, 0x0, 0x0, 0xffffffff, 0xff33a394, 0xabcffd70), at 0xff2c9db0 [6] addsev(0xff336000, 0xabcffd70, 0x0, 0xfffffff8, 0x4, 0xabcffd91), at 0xff2b531c [7] os::abort(0x1, 0xfe3bff28, 0x267f8, 0xabcff, 0xfe419fe8, 0xabcffd8c), at 0xfe1d0fe4 [8] report_error(0xe4, 0xabd0060c, 0x79a, 0xfe3bfd30, 0xfe477594, 0xfe419fe8), at 0xfe0c44d4 [9] handle_unexpected_exception(0xfe419fe8, 0xb, 0xabd00d38, 0xfe2d2dd4, 0xfe2d2dd4, 0x0), at 0xfe1d29b0 [10] JVM_handle_solaris_signal(0xfe419fe8, 0xfe2d2dd4, 0xfe2d2dd4, 0x0, 0xfe2d2dd4, 0x152c30), at 0xfe1d5b5c [11] __libthread_segvhdlr(0xb, 0xabd00d38, 0xabd00a80, 0xff38e000, 0xb, 0x0), at 0xff379194 [12] __sighndlr(0xb, 0xabd00d38, 0xabd00a80, 0xff3790b0, 0xabd01e10, 0xabd01e00), at 0xff37bd04 [13] sigacthandler(0xb, 0xabd01d78, 0xabd00a80, 0xff38e000, 0xabd01d78, 0xabd00d38), at 0xff378508 ---- called from signal handler with signal 11 (SIGSEGV) ------ =>[14] RegionNode::Ideal(0x4, 0xabd0118c, 0xabd012ac, 0xfe419fe8, 0x81b998, 0x0), at 0xfe2d2dd4 [15] PhaseIterGVN::transform_old(0xabd0118c, 0xabd0118c, 0x81b998, 0xabd012ac, 0x81b998, 0xabd011b4), at 0xfe3867a0 [16] PhaseIterGVN::optimize(0x4, 0x519178, 0x8345b4, 0xabd00f70, 0xfffffff8, 0x81b998), at 0xfe386114 [17] PhaseIdealLoop::PhaseIdealLoop(0xabd00f70, 0x1706c8, 0x1, 0x8563ac, 0x400, 0x8a48c0), at 0xfe3404c4 [18] Compile::Optimize(0xabd017c8, 0xabd016f8, 0x8d2fe0, 0xabd01420, 0x0, 0xabd0151c), at 0xfe2ed428 [19] Compile::Compile(0x8d2fe0, 0xabd01b10, 0x277874, 0xabd01840, 0xabd018e0, 0xabd018f0), at 0xfe2ebaa4 [20] C2Compiler::compile_method(0x28740, 0xabd01b10, 0x277874, 0x277788, 0xffffffff, 0x1), at 0xfe2cf204 [21] CompileBroker::invoke_compiler_on_method(0x277788, 0xfe42dd4c, 0x277874, 0xfe4365d8, 0x0, 0x0), at 0xfe26aec8 [22] CompileBroker::compiler_thread_loop(0x27d40, 0x152c30, 0xfe419fe8, 0xabd01d18, 0xfe419fe8, 0xffffffff), at 0xfe26 aa7c [23] JavaThread::run(0xabb02000, 0xfe424624, 0xfe419fe8, 0x200000, 0x152c30, 0x200000), at 0xfe2346f0 [24] _start(0xfe419fe8, 0xfdff5d18, 0x0, 0x5, 0x1, 0xfe401000), at 0xfe1cfc30 current thread: t@10 current frame: [14] g0-g3 0x00000000 0x00000000 0x0081c298 0x00000004 g4-g7 0x006d1478 0x00000000 0x00000000 0xabd01d78 o0-o3 0x00000000 0x00000003 0xabd012ac 0x0000000c o4-o7 0x0081b9b0 0x00000003 0xabd00db8 0xfe2d2db8 l0-l3 0xfe3580fc 0xabd00f80 0x00000001 0x00000000 l4-l7 0x0081c29c 0x00000001 0x0085638c 0xabd01148 i0-i3 0x00000004 0xabd0118c 0xabd012ac 0xfe419fe8 i4-i7 0x0081b998 0x00000000 0xabd00e50 0xfe3867a0 y 0x00000000 ccr 0x00000000 pc 0xfe2d2dd4:Ideal+0x300 ld [%o0], %g2 npc 0xfe2d2dd8:Ideal+0x304 ld [%g2 + 0x1c], %l0 (dbx)x 0xfe2d2d94/32i 0xfe2d2d94: Ideal+0x02c0: ba Ideal+0x2d4 0xfe2d2d98: Ideal+0x02c4: add %l2, -0x1, %l2 0xfe2d2d9c: Ideal+0x02c8: ld [%i4 + 0x4], %g2 0xfe2d2da0: Ideal+0x02cc: add %l2, -0x1, %l2 0xfe2d2da4: Ideal+0x02d0: st %o2, [%g2 + %i0] 0xfe2d2da8: Ideal+0x02d4: ld [%i4 + 0x8], %o1 0xfe2d2dac: Ideal+0x02d8: ba Ideal+0x4c4 0xfe2d2db0: Ideal+0x02dc: add %l2, 0x1, %l2 0xfe2d2db4: Ideal+0x02e0: ld [%g2 + 0x3c], %l0 0xfe2d2db8: Ideal+0x02e4: jmpl %l0, %o7 0xfe2d2dbc: Ideal+0x02e8: mov %l4, %o0 0xfe2d2dc0: Ideal+0x02ec: tst %o0 0xfe2d2dc4: Ideal+0x02f0: be,a Ideal+0x374 0xfe2d2dc8: Ideal+0x02f4: ld [%l4 + 0x10], %g2 0xfe2d2dcc: Ideal+0x02f8: ld [%l4 + 0x4], %g2 0xfe2d2dd0: Ideal+0x02fc: ld [%g2], %o0 0xfe2d2dd4: Ideal+0x0300: ld [%o0], %g2 0xfe2d2dd8: Ideal+0x0304: ld [%g2 + 0x1c], %l0 0xfe2d2ddc: Ideal+0x0308: jmpl %l0, %o7 0xfe2d2de0: Ideal+0x030c: nop 0xfe2d2de4: Ideal+0x0310: orcc %g0, %o0, %o0 0xfe2d2de8: Ideal+0x0314: be,a Ideal+0x374 0xfe2d2dec: Ideal+0x0318: ld [%l4 + 0x10], %g2 0xfe2d2df0: Ideal+0x031c: ld [%i3 + 0xa74], %g2 0xfe2d2df4: Ideal+0x0320: mov %l2, %o1 0xfe2d2df8: Ideal+0x0324: ld [%o0 + 0x28], %g3 0xfe2d2dfc: Ideal+0x0328: ld [%g2], %g2 0xfe2d2e00: Ideal+0x032c: cmp %g3, %g2 0xfe2d2e04: Ideal+0x0330: bne,a Ideal+0x374 0xfe2d2e08: Ideal+0x0334: ld [%l4 + 0x10], %g2 0xfe2d2e0c: Ideal+0x0338: ld [%o0 + 0x4], %g2 0xfe2d2e10: Ideal+0x033c: cmp %i2, 0x0 dbx) dump_stki $o6 dbx: warning: unknown language, 'ansic' assumed 0xabd00db8: 0xfe3580fc 0xabd00f80 0x00000001 0x00000000 0xabd00dc8: 0x0081c29c 0x00000001 0x0085638c 0xabd01148 0xabd00dd8: 0x00000004 0xabd0118c 0xabd012ac 0xfe419fe8 0xabd00de8: 0x0081b998 0x00000000 0xabd00e50 0xfe3867a0 [1] next fr: 0xabd00e50 0xfe3867a0: transform_old+0x00a4: jmpl %l0, %o7 0xabd00e50: 0xfe2d2ad4 0xabd00f80 0xabd00f70 0x0000000b 0xabd00e60: 0x0000000e 0x0000000b 0x008563ac 0x0083458c 0xabd00e70: 0xabd0118c 0xabd0118c 0x0081b998 0xabd012ac 0xabd00e80: 0x0081b998 0xabd011b4 0xabd00eb0 0xfe386114 [2] next fr: 0xabd00eb0 0xfe386114: optimize+0x00b4: jmpl %l0, %o7 0xabd00eb0: 0xfe3866fc 0xabd01288 0x0081b998 0xabd0118c 0xabd00ec0: 0x008345b4 0x00000001 0xabd01158 0xabd01148 0xabd00ed0: 0x00000004 0x00519178 0x008345b4 0xabd00f70 0xabd00ee0: 0xfffffff8 0x0081b998 0xabd00f10 0xfe3404c4 [3] next fr: 0xabd00f10 0xfe3404c4: PhaseIdealLoop+0x07c8: call optimize 0xabd00f10: 0x008a48c0 0xabd01288 0x00000000 0xabd0118c 0xabd00f20: 0x008563e4 0xabd01148 0x00000010 0x0000000c 0xabd00f30: 0xabd00f70 0x001706c8 0x00000001 0x008563ac 0xabd00f40: 0x00000400 0x008a48c0 0xabd00f90 0xfe2ed428 [4] next fr: 0xabd00f90 0xfe2ed428: Optimize+0x009c: call PhaseIdealLoop 0xabd00f90: 0xabd01398 0xabd017c8 0x00000014 0x00000005 0xabd00fa0: 0x008d2fe0 0x008d2ff4 0xabd017c8 0x008d2fe0 0xabd00fb0: 0xabd017c8 0xabd016f8 0x008d2fe0 0xabd01420 0xabd00fc0: 0x00000000 0xabd0151c 0xabd01310 0xfe2ebaa4 [5] next fr: 0xabd01310 0xfe2ebaa4: Compile+0x07b4: call Optimize 0xabd01310: 0x00152c30 0xabd017c8 0xfe419fe8 0xabd01860 0xabd01320: 0x008d2fe0 0x00000000 0x00000000 0x00000000 0xabd01330: 0x008d2fe0 0xabd01b10 0x00277874 0xabd01840 0xabd01340: 0xabd018e0 0xabd018f0 0xabd01760 0xfe2cf204 [6] next fr: 0xabd01760 0xfe2cf204: compile_method+0x0078: call Compile 0xabd01760: 0x00000001 0xabd01b10 0x00000000 0x00277788 0xabd01770: 0xabd01b10 0x00277874 0xffffffff 0x00000000 0xabd01780: 0x00028740 0xabd01b10 0x00277874 0x00277788 0xabd01790: 0xffffffff 0x00000001 0xabd01a90 0xfe26aec8 [7] next fr: 0xabd01a90 0xfe26aec8: invoke_compiler_on_method+0x0370: jmpl %l0, %o7 0xabd01a90: 0xfe2cf18c 0x00000050 0xfe419fe8 0xffffffff 0xabd01aa0: 0x00152d60 0x00150fd0 0x00000001 0x00152cb4 0xabd01ab0: 0x00277788 0xfe42dd4c 0x00277874 0xfe4365d8 0xabd01ac0: 0x00000000 0x00000000 0xabd01b88 0xfe26aa7c [8] next fr: 0xabd01b88 0xfe26aa7c: compiler_thread_loop+0x0168: call invoke_compiler_on_method 0xabd01b88: 0xf8a51790 0x00150bf8 0x00150fd0 0xffbee88c 0xabd01b98: 0xffbee810 0x000002c4 0xf883e8b8 0x00000000 0xabd01ba8: 0x00027d40 0x00152c30 0xfe419fe8 0xabd01d18 0xabd01bb8: 0xfe419fe8 0xffffffff 0xabd01c40 0xfe2346f0 [9] Still attempting to determine the method when compilation bombed. Have given customer the b8 build of 1.3.1 (Ladybird) to test if the bug has been fixed in Ladybird (see Comments email from Cliff Click). ###@###.### 2000-11-16 Still no progress. Customer can't reproduce under -Xdebug or java_g version. We are trying using the Serviceability Agent libjvm to reproduce the core, and hopefully we'll be able to then determine the active method. ###@###.### 2000-11-29 Significant new info from the field: "The system has enough memory and also the heap sizes for Java are large enough. Note though that at the customer we have seen crashes just after an OutOfMemory error. Also, all of their Java code is compiled on NT with the MS Java compiler. Your suggestion, that bad bytecodes could have caused the problem may be related to this error." Hans Nijbacker ###@###.### 2000-12-01 So now running 1.3.0 with the Serviceability Agent mods (from Murali's build at: file:/net/hyderabad.eng/export/home/muralie/ws/sa , core file @ file:/net/hansolo.holland/Halon/Distribution/Intentia/HotSpot-problem/ core_sa_normal_thread.gz ) shows an assertion failure: file:/net/hyderabad.eng/export/home/muralie/ws/sa/src/share/vm/oops/instanceKlass.cpp 909 assert(Universe::is_heap(*start), "should be in heap"); Is this the cause of our compiler2 segv? Could it also be the cause of the client compiler failures? Any ideas what this really means? TIA for any ideas on where to go with this now... (dbx6l) where current thread: t@4 [1] __sigprocmask(0x0, 0xfee0a9b8, 0x0, 0x0, 0x0, 0x0), at 0xff379bf0 [2] _resetsig(0xff37c510, 0x0, 0x0, 0xfee0bd78, 0xff38e000, 0x0), at 0xff36e620 [3] _sigon(0xfee0bd78, 0xff395990, 0x6, 0xfee0aa8c, 0xfee0bd78, 0xfee0aad0), at 0xff36dd10 [4] _thrp_kill(0x0, 0x4, 0x6, 0xff38e000, 0x4, 0xff33a428), at 0xff370e84 [5] raise(0x6, 0x0, 0x0, 0xffffffff, 0xff33a394, 0xfee0abe8), at 0xff2c9b08 [6] abort(0xff336000, 0xfee0abe8, 0x0, 0xfffffff8, 0x4, 0xfee0ac09), at 0xff2b5124 =>[7] os::abort(dump_core = 1), line 1151 in "os_solaris.cpp" [8] report_error(is_vm_internal_error = 1, file_name = 0xfe34c544 "/export/home/muralie/ws/sa/src/share/vm/oops/instanceKlass.cpp", line_no = 909, title = 0xfe339b04 "assertion failure", format = 0xfe339b18 "assert(%s, "%s")", ...), line 326 in "debug.cpp" [9] report_assertion_failure(code_str = 0xfe34c528 "Universe::is_heap(*start)", file_name = 0xfe34c544 "/export/home/muralie/ws/sa/src/share/vm/oops/instanceKlass.cpp", line_no = 909, message = 0xfe34c584 "should be in heap"), line 145 in "debug.cpp" [10] instanceKlass::oop_scavenge_contents(this = 0xf8158c10, obj = 0xa23eadb8), line 909 in "instanceKlass.cpp" [11] oopDesc::scavenge_contents(this = 0xa23eadb8), line 305 in "oop.inline.hpp" [12] OldSpace::scavenge_contents_from(this = 0x89080, mark = 0x8903c), line 645 in "space.cpp" [13] OneSpaceOldGeneration::scavenge_contents_from_saved_marks(this = 0x88fe8), line 594 in "generation.cpp" [14] Scavenge::evacuate_followers(), line 680 in "scavenge.cpp" [15] Scavenge::invoke_at_safepoint(size_to_be_allocated = 10, deferred = 0, notify_ref_lock = 0), line 551 in "scavenge.cpp" [16] VM_Scavenge::doit(this = 0x7838075c), line 109 in "vm_operations.cpp" [17] VM_Operation::evaluate(this = 0x7838075c), line 33 in "vm_operations.cpp" [18] VMThread::evaluate_operation(this = 0x1d5850, op = 0x7838075c), line 225 in "vmThread.cpp" [19] VMThread::loop(this = 0x1d5850), line 301 in "vmThread.cpp" [20] VMThread::run(this = 0x1d5850), line 165 in "vmThread.cpp" [21] _start(data = 0x1d5850), line 489 in "os_solaris.cpp" (dbx6l) frame 10 Current function is instanceKlass::oop_scavenge_contents 909 assert(Universe::is_heap(*start), "should be in heap"); is very similar to bug# 4311720... Still looking. ###@###.### 2000-12-01 All of the stack traces above not involving RegionNode::Ideal appear to be unrelated bugs. The fix for this problem was identified as follows: analysis by manu4ever ( ###@###.### ) We are having the same problem in a very large application. The stack trace from dbx is virtually identical to that shown above. I've done some preliminary analysis on it and here are my findings: The relevant hotspot source code is in file share/vm/opto/cfgnode.cpp at lines 1438 et seq (in function IfNode::Ideal) when the ideal IF node is being calculated. The code looks like this: 1438 if( op == Op_If && 1439 (cmp=in(1)->in(1))->Opcode() == Op_CmpP ) { 1440 if( cmp->in(2)->bottom_type() == TypePtr::NULL_PTR ) { 1441 dist = 64; // Limit for null-pointer scans 1442 } else { 1443 dist = 4; // Do not bother for random pointer tests 1444 } 1445 } else { 1446 dist = 4; // Limit for random junky scans 1447 } 1448 This fix has been confirmed by Goldman-Sachs. ###@###.### 2000-12-11
11-12-2000

SUGGESTED FIX The follwoing code change fixes the problem identified in this bug. ------- cfgnode.cpp ------- *** sccs.zGaqfJ Mon Dec 11 13:03:42 2000 --- cfgnode.cpp Thu Dec 7 16:12:50 2000 *************** *** 1437,1443 **** int op = Opcode(); if( op == Op_If && (cmp=in(1)->in(1))->Opcode() == Op_CmpP ) { ! if( cmp->in(2)->bottom_type() == TypePtr::NULL_PTR ) { dist = 64; // Limit for null-pointer scans } else { dist = 4; // Do not bother for random pointer tests --- 1437,1444 ---- int op = Opcode(); if( op == Op_If && (cmp=in(1)->in(1))->Opcode() == Op_CmpP ) { ! if( cmp->in(2) != NULL && // Fix for bug# 4387520 ! cmp->in(2)->bottom_type() == TypePtr::NULL_PTR ) { dist = 64; // Limit for null-pointer scans } else { dist = 4; // Do not bother for random pointer tests ###@###.### 2000-12-11
11-12-2000