Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 4890910
Votes 0
Synopsis GC Hang while resolving simultaneous out_of_bounds exceptions
Category java:jvm_exact
Reported Against 1.2.2_16
Release Fixed 1.2.2_17
State 10-Fix Delivered, bug
Priority: 2-High
Related Bugs 4881610 , 4846970
Submit Date 15-JUL-2003
Description
After the fix for 4846970, the same test case hangs as follows (Takes 2-3days):
Two threads (  xxxxx@xxxxx  ,  xxxxx@xxxxx  ) encounter simultaneous out_of_bounds exceptions, 1 (  xxxxx@xxxxx  ) gets the classStructureMonitorEnter lock and proceeds to wait for GC,
the 2nd (  xxxxx@xxxxx  ) is hung in lwp_mutex_lock with SIGUSR2 disabled,
and so we never successfully suspend for GC.

  xxxxx@xxxxx   (  xxxxx@xxxxx  ) stopped in ___lwp_cond_wait at 0xef63a484
0xef63a484: ___lwp_cond_wait+0x0004:    ta      0x8
        Thread   xxxxx@xxxxx   (0xe8a73dd0) at priority 5
        state: active on   xxxxx@xxxxx    
        base function: 0xef2c8fe8: _start() stack: 0xe8a74000[204800]
        flags: NEW_LWP|DETACHED|SUSPENDED 
        masked signals: ILL USR1 USR2 
        Currently active in ___lwp_cond_wait
current thread:   xxxxx@xxxxx  
  [1] ___lwp_cond_wait(0xef52cfa8, 0xef52cf18, 0x0, 0x0, 0x0, 0x0), at 0xef63a484
  [2] __lwp_cond_wait(0xef52cfa8, 0xef52cf18, 0x9c0, 0xef2053f8, 0x6a617661, 0x73756e2f), at 0xef66c548
=>[3] sysCondvarWaitGCOnly(condvar = 0xef52cfa8, mutex = 0xef52cf18), line 86 in "condvar_md.c"
  [4] stable_wait_for_gc_end(self = 0x373088), line 135 in "suspendmutators.c"
  [5] wait_for_gc_end1(self = 0x373088, hasCaptured = TRUE), line 199 in "suspendmutators.c"
  [6] checked_wait_for_gc_end(), line 238 in "suspendmutators.c"
  [7] LLNI_isValidHandleWork(h = 0xf1e54, markOK = FALSE), line 144 in "llni.c"
  [8] LLNI_isValidHandle(h = 0xf1e54), line 151 in "llni.c"
  [9] LLNI_isSameObject(h1 = 0x56f2ac, h2 = 0xf1e54), line 374 in "llni.h"
  [10] CheckSignatureLoaders(signature = 0xebf30 "(JI)V", loader1 = 0x56f2ac, loader2 = 0xf1e54), line 1318 in "loader_ch
eck.c"
  [11] PrepareMethods(cb = 0x56f288), line 852 in "classresolver.c"
  [12] Locked_LinkClass(cb = 0x56f288), line 1660 in "classresolver.c"
  [13] LinkClass(cb = 0x56f288), line 1226 in "classresolver.c"
  [14] Locked_LinkClass(cb = 0x572e90), line 1616 in "classresolver.c"
  [15] LinkClass(cb = 0x572e90), line 1226 in "classresolver.c"
  [16] InitClass(cb = 0x572e90), line 1171 in "classruntime.c"
  [17] FindClassFromClassLoader2(ee = 0x373088, name = 0xef4ec068 "java/lang/ArrayIndexOutOfBoundsException", initialize 
= TRUE, loader = 0xef519360, throwError = TRUE, pd = 0xef519360, result = 0xe8a71d20), line 2012 in "classresolver.c"
  [18] FindClassFromClass(ee = 0x373088, name = 0xef4ec068 "java/lang/ArrayIndexOutOfBoundsException", initialize = TRUE,
 from = (nil), result = 0xe8a71d20), line 2051 in "classresolver.c"
  [19] FindErrorClass(cl = 0xe8a71d20, ename = 0xef4ec068 "java/lang/ArrayIndexOutOfBoundsException"), line 1247 in "clas
sruntime.c"
  [20] SignalError(ename = 0xef4ec068 "java/lang/ArrayIndexOutOfBoundsException", DetailMessage = 0xe8a71e0e "4"), line 1
294 in "classruntime.c"
  [21] JITSignalHandler(sig = 4, info = 0xe8a72510, ucvoid = 0xe8a72258), line 1122 in "compiler_md.c"
  [22] CompiledCodeSignalHandler(sig = 4, info = 0xe8a72510, uc = 0xe8a72258), line 26 in "jit.c"
  [23] panicHandler(sig = 4, siginfo = 0xe8a72510, uc = 0xe8a72258), line 512 in "signals_md.c"
  [24] userSignalHandler(sig = 4, info = 0xe8a72510, uc = 0xe8a72258, arg = 0xef2df680), line 115 in "interrupt.c"
  [25] intrDispatch(interrupt = 4, siginfo = 0xe8a72510, context = 0xe8a72258), line 103 in "interrupt.c"
  [26] intrDispatchMD(sig = 4, info = 0xe8a72510, uc = 0xe8a72258), line 65 in "interrupt_md.c"
  [27] __sighndlr(0x4, 0xe8a72510, 0xe8a72258, 0xef2d5e40, 0xe8a73e48, 0xe8a73e28), at 0xef7165c4
  [28] sigacthandler(0x4, 0xe8a72510, 0xe8a72258, 0xef726b78, 0x10, 0xe8a73e58), at 0xef713a40
  ---- called from signal handler with signal 4 (SIGILL) ------


  xxxxx@xxxxx   (  xxxxx@xxxxx  ) stopped in ___lwp_mutex_lock at 0xef63a40c
0xef63a40c: ___lwp_mutex_lock+0x0008:   ta      0x8
        Thread   xxxxx@xxxxx   (0xee273dd0) at priority 5
        state: active on   xxxxx@xxxxx    
        base function: 0xef2c8fe8: _start() stack: 0xee274000[204800]
        flags: NEW_LWP|DETACHED|SUSPENDED 
        masked signals: ILL USR1 USR2 
        Currently active in ___lwp_mutex_lock
current thread:   xxxxx@xxxxx  
  [1] ___lwp_mutex_lock(0x572ee0, 0xef52c5b0, 0x9c4, 0xef2053f8, 0xef726b78, 0xef688c60), at 0xef63a40c
=>[2] sysMutexLock(m = 0x572ee0), line 152 in "mutex_md.c"
  [3] classStructureMonitorEnter(cb = 0x572e90), line 1818 in "monitor.c"
  [4] LinkClass(cb = 0x572e90), line 1225 in "classresolver.c"
  [5] InitClass(cb = 0x572e90), line 1171 in "classruntime.c"
  [6] FindClassFromClassLoader2(ee = 0x3824a8, name = 0xef4ec068 "java/lang/ArrayIndexOutOfBoundsException", initialize =
 TRUE, loader = 0xef519360, throwError = TRUE, pd = 0xef519360, result = 0xee271d20), line 2012 in "classresolver.c"
  [7] FindClassFromClass(ee = 0x3824a8, name = 0xef4ec068 "java/lang/ArrayIndexOutOfBoundsException", initialize = TRUE, 
from = (nil), result = 0xee271d20), line 2051 in "classresolver.c"
  [8] FindErrorClass(cl = 0xee271d20, ename = 0xef4ec068 "java/lang/ArrayIndexOutOfBoundsException"), line 1247 in "class
runtime.c"
  [9] SignalError(ename = 0xef4ec068 "java/lang/ArrayIndexOutOfBoundsException", DetailMessage = 0xee271e0e "4"), line 12
94 in "classruntime.c"
  [10] JITSignalHandler(sig = 4, info = 0xee272510, ucvoid = 0xee272258), line 1122 in "compiler_md.c"
  [11] CompiledCodeSignalHandler(sig = 4, info = 0xee272510, uc = 0xee272258), line 26 in "jit.c"
  [12] panicHandler(sig = 4, siginfo = 0xee272510, uc = 0xee272258), line 512 in "signals_md.c"
  [13] userSignalHandler(sig = 4, info = 0xee272510, uc = 0xee272258, arg = 0xef2df680), line 115 in "interrupt.c"
  [14] intrDispatch(interrupt = 4, siginfo = 0xee272510, context = 0xee272258), line 103 in "interrupt.c"
  [15] intrDispatchMD(sig = 4, info = 0xee272510, uc = 0xee272258), line 65 in "interrupt_md.c"
  [16] __sighndlr(0x4, 0xee272510, 0xee272258, 0xef2d5e40, 0xee273e48, 0xee273e28), at 0xef7165c4
  [17] sigacthandler(0x4, 0xee272510, 0xee272258, 0xef726b78, 0x10, 0xee273e58), at 0xef713a40
  ---- called from signal handler with signal 4 (SIGILL) ------
Work Around
N/A
Evaluation
See description.

  xxxxx@xxxxx   2003-07-15 
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang