JDK-6174731 : Crashes in jdk1.4.2 during Parallel garbage collection
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 1.4.2_04,1.4.2_05,1.4.2_06,1.4.2_08
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_7,solaris_8
  • CPU: sparc
  • Submitted: 2004-10-06
  • Updated: 2021-10-05
  • Resolved: 2005-10-10
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
1.4.2Resolved
Related Reports
Duplicate :  
Relates :  
Description
Jdk 1.4.2_04

Customer reported crashes while gc

dbx>mainargs                                                                
t@1 (l@1) stopped in ___lwp_cond_wait at 0xff31f454
0xff31f454: ___lwp_cond_wait+0x0018:    mov     0x4, %o0
main's fp =  0xffbedbd8
argc =  29
argv = 0xffbedc3c
envp = 0xffbedc44
Arguments:
0xffbedf0c:     /export/bea/jdk142_04/bin/java
0xffbedf2b:     -server
0xffbedf33:     -verbose:gc
0xffbedf3f:     -XX:+PrintGCTimeStamps
0xffbedf56:     -XX:+PrintGCDetails
0xffbedf6a:     -XX:+UseParallelGC   <=================
0xffbedf7d:     -Xms1540m
0xffbedf87:     -Xmx1540m
0xffbedf91:     -XX:PermSize=384m
0xffbedfa3:     -XX:MaxPermSize=384m
0xffbedfb8:     -XX:NewSize=384m
0xffbedfc9:     -XX:MaxNewSize=384m
0xffbedfdd:     -Dfile.encoding=ISO8859-1

Unexpected Signal : 11 occurred at PC=0xFF0B595C
Function=[Unknown. Nearest: sysThreadAvailableStackWithSlack+0x1A3BC]
Library=/export/bea/jdk142_04/jre/lib/sparc/server/libjvm.so

-----------------  lwp# 2 / thread# 2  --------------------
ff31f2b4 _lwp_kill (6, 0, 0, ffffffff, ff3403c4, 0) + 18
ff2b5984 abort    (ff33c008, fc77ee18, 0, 4, 0, fc77ee39) + 100
ff098498 void os::abort(int) (1, ff343a54, ff33fca8, 0, ff33fca8, ff153601) + 80
ff0965ac void os::handle_unexpected_exception(Thread*,int,unsigned char*,void*) (0, b, ff0b595c, fc77fc30, fedd87d8, 0) + d4
fedd90ac JVM_handle_solaris_signal (ff0b595c, fc77fc30, fc77f978, 3400, 35ec, 0) + 91c
ff374ee8 __sighndlr (b, fc77fc30, fc77f978, fedd875c, 0, 0) + c
ff36eb80 call_user_handler (ff270200, 2, ff3877a0, fc77f978, fc77fc30, b) + 254
ff36ed4c sigacthandler (ff270200, fc77fc30, fc77f978, ff386000, fc77fc30, b) + 64
--- called from signal handler with signal -14220800 (SIG Unknown) ---
ff0b595c oopDesc*PSPromotionManager::copy_to_survivor_space(oopDesc*) (3e7bf8, 9771bf88, 3094ed, 0, 0, 1f31d) + 34
fefac4e0 void instanceKlass::oop_copy_contents(PSPromotionManager*,oopDesc*) (e200914c, ff1b8e0c, 0, ff1b8e00, 0, 0) + 134
ff0b57a0 void PSPromotionManager::drain_stacks() (3e7bf8, ff1b8e0c, 0, ff1b8e00, bad5c, ff0b7f3c) + c8
ff0b7fb8 void StealTask::do_it(GCTaskManager*,unsigned) (e6b6cc, 3e35f0, 0, b7de8, fef94864, 0) + c4
fef94880 void GCTaskThread::run() (3e3698, 2, 40, 0, 40, 0) + 1f8
fee6575c _start   (3e3698, ff270200, 0, 0, 0, 0) + 134
ff374b90 _lwp_start (0, 0, 0, 0, 0, 0)

-----------------  lwp# 4 / thread# 4  --------------------
ff3aa668 elf_dladdr (ff0b595c, ff3dfc7c, fc57eb50, 0, 0, ff3dfc7c) + 68
ff3b4064 dladdr   (ff3ddcec, 0, ff3dfc7c, 1, 0, fc57eb50) + 90
ff098658 int os::dll_address_is_in_vm(unsigned char*) (ff0b595c, fc57ed24, fc57ed20, b, 0, 0) + 120
ff095dec void os::report_fatal_error(outputStream*,unsigned char*,int) (ffffffff, 0, ff15326f, 0, ff1b78bc, fc57f788) + 130
ff0966a4 void os::handle_unexpected_exception(Thread*,int,unsigned char*,void*) (0, b, ff0b595c, fc57fc30, fedd87d8, 0) + 1cc
fedd90ac JVM_handle_solaris_signal (ff0b595c, fc57fc30, fc57f978, 3400, 35ec, 0) + 91c
ff374ee8 __sighndlr (b, fc57fc30, fc57f978, fedd875c, 0, 0) + c
ff36eb80 call_user_handler (ff270600, 4, ff3877a0, fc57f978, fc57fc30, b) + 254
ff36ed4c sigacthandler (ff270600, fc57fc30, fc57f978, ff386000, fc57fc30, b) + 64
--- called from signal handler with signal -14219776 (SIG Unknown) ---
ff0b595c oopDesc*PSPromotionManager::copy_to_survivor_space(oopDesc*) (3e9d38, 9771bf88, 279af36, 2, 3e9d38, 1f31d) + 34
fefac4e0 void instanceKlass::oop_copy_contents(PSPromotionManager*,oopDesc*) (e200914c, ff1b8e0c, 0, ff1b8e00, 4a6268, 0) + 134
ff0b57a0 void PSPromotionManager::drain_stacks() (3e9d38, ff1b8e0c, 0, ff1b8e00, bad5c, ff0b7f3c) + c8
ff0b7fb8 void StealTask::do_it(GCTaskManager*,unsigned) (e6b714, 3e35f0, 2, b7de8, fef94864, 0) + c4
fef94880 void GCTaskThread::run() (3e3988, 4, 40, 0, 40, 0) + 1f8
fee6575c _start   (3e3988, ff270600, 0, 0, 0, 0) + 134
ff374b90 _lwp_start (0, 0, 0, 0, 0, 0)

-----------------  lwp# 10 / thread# 10  --------------------
ff31f454 ___lwp_cond_wait (8690c8, 8690b0, 0, ff170000, 0, 0) + 18
fed953dc int Monitor::wait(int,long) (97fe78, 0, 0, 4000, 4178, 1dd5d4) + 104
fef94050 void WaitForBarrierGCTask::wait_for() (e6b78c, 3f1228, e6b78c, 1, 1dd618, 0) + 34
ff0b6c90 void PSScavenge::invoke_no_policy(int&) (499c, 4c00, 4c80, 3c00, 3f70, 0) + 79c
ff0b6478 void PSScavenge::invoke(int&) (7acfea38, faac88c0, fa400000, 6, 1b223, fed46294) + 4c
ff0a33d8 HeapWord*ParallelScavengeHeap::failed_mem_allocate(int&,unsigned,int,int) (2a018, 7acfea38, 8, 0, 0, 6) + 24
ff0f957c void VM_ParallelGCFailedAllocation::doit() (7acfea1c, faac8d00, 1, ff170000, fa400000, 6) + 30
fee2e50c void VM_Operation::evaluate() (7acfea1c, 4400, ff170000, 2d688, 4a6268, fede1d44) + 8c
fee2df2c void VMThread::evaluate_operation(VM_Operation*) (3f1198, 7acfea1c, 5000, 50dc, 5000, 0) + 84
feef1fe8 void VMThread::loop() (4400, 4000, 4324, 4000, 42b0, 3800) + 3e8
feef1ae4 void VMThread::run() (3f1198, a, 40, 0, 40, 0) + 8c
fee6575c _start   (3f1198, ff271200, 0, 0, 0, 0) + 134
ff374b90 _lwp_start (0, 0, 0, 0, 0, 0)

Customer is requested to upgrade to jdk1.4.2_05 and it still crashes

dbx>where                                                                   
current thread: t@10
=>[1] __lwp_kill(0x0, 0xa, 0x0, 0xff33c008, 0xff386000, 0x0), at 0xff31f2b4
  [2] raise(0x6, 0x0, 0x0, 0xffffffff, 0xff3403c4, 0x0), at 0xff2cbcec
  [3] abort(0xff33c008, 0x8157ea48, 0x0, 0x4, 0x0, 0x8157ea69), at 0xff2b5984
  [4] os::abort(0x1, 0xff1555aa, 0x8157eaf8, 0xff182000, 0xff1c9944, 0x3ee894), at 0xff099d98
  [5] os::handle_unexpected_exception(0x0, 0xb, 0xfecc7ae8, 0x8157f860, 0xfedd7398, 0x0), at 0xff0980ac
  [6] JVM_handle_solaris_signal(0xfecc7ae8, 0x8157f860, 0x8157f5a8, 0x3400, 0x3608, 0x0), at 0xfedd7c6c
  [7] __sighndlr(0xb, 0x8157f860, 0x8157f5a8, 0xfedd731c, 0x0, 0x0), at 0xff374ee8
  [8] call_user_handler(0xff271200, 0xa, 0xff3877a0, 0x8157f5a8, 0x8157f860, 0xb), at 0xff36eb80
  [9] sigacthandler(0xff271200, 0x8157f860, 0x8157f5a8, 0xff386000, 0x8157f860, 0xb), at 0xff36ed4c
  ---- called from signal handler with signal 11 (SIGSEGV) ------
  [10] MarkSweep::mark_and_follow(0xafce7878, 0x8ab06cc8, 0xff182000, 0x19ba290, 0x447bc8, 0xfed5dc2c), at 0xfecc7ae8
  [11] objArrayKlass::oop_follow_contents(0xe28e4868, 0xafce74f8, 0x0, 0x0, 0x0, 0x0), at 0xfecc8db8
  [12] MarkSweep::follow_stack(0xff1c65b4, 0x11a, 0x0, 0x1, 0x345f0, 0x0), at 0xff07afe0
  [13] PSMarkSweep::mark_sweep_phase1(0x8157fba4, 0x0, 0x1, 0x4330, 0x35d80, 0x91c00000), at 0xff0b3328
  [14] PSMarkSweep::invoke_no_policy(0xff1c1238, 0xff1c1050, 0xff1ca154, 0xff1ca15c, 0x7b1febb8, 0xe80b), at 0xff0b2b38
  [15] PSScavenge::invoke(0x7b1febb8, 0xfaa9d240, 0xfa400000, 0x6, 0x1a749, 0xfed44c3c), at 0xff0b7ef4
  [16] ParallelScavengeHeap::failed_mem_allocate(0x33df8, 0x7b1febb8, 0x12, 0x0, 0x0, 0x6), at 0xff0a4d30
  [17] VM_ParallelGCFailedAllocation::doit(0x7b1feb9c, 0xfa649280, 0x1, 0xff182000, 0x3ab850, 0xff1cd724), at 0xff0fb1c4
  [18] VM_Operation::evaluate(0x7b1feb9c, 0x4400, 0xff182000, 0x37478, 0x4b8110, 0xfede0904), at 0xfee2ce78
  [19] VMThread::evaluate_operation(0x511b10, 0x7b1feb9c, 0x5000, 0x5100, 0x5000, 0x0), at 0xfee2c898
  [20] VMThread::loop(0x4800, 0x4000, 0x4340, 0x4000, 0x42cc, 0x3800), at 0xfeef0ca8
  [21] VMThread::run(0x511b10, 0xa, 0x40, 0x0, 0x40, 0x0), at 0xfeef07a4
  [22] _start(0x511b10, 0xff271200, 0x0, 0x0, 0x0, 0x0), at 0xfee643e0

dbx>mainargs
t@1 (l@1) stopped in ___lwp_cond_wait at 0xff31f454
0xff31f454: ___lwp_cond_wait+0x0018:    mov     0x4, %o0
main's fp =  0xffbedaf0
argc =  31
argv = 0xffbedb54
envp = 0xffbedb5c
Arguments:
0xffbede3c:     /export/bea/jdk142_05/bin/java
0xffbede5b:     -server
0xffbede63:     -verbose:gc
0xffbede6f:     -XX:+PrintGCTimeStamps
0xffbede86:     -XX:+PrintGCDetails
0xffbede9a:     -XX:+UseParallelGC <=============
0xffbedead:     -XX:+PrintCompilation
0xffbedec3:     -XX:-UseOnStackReplacement
0xffbedede:     -Xms1540m
0xffbedee8:     -Xmx1540m
0xffbedef2:     -XX:PermSize=384m
0xffbedf04:     -XX:MaxPermSize=384m
0xffbedf19:     -XX:NewSize=384m
0xffbedf2a:     -XX:MaxNewSize=384m
0xffbedf3e:     -Dfile.encoding=ISO8859-1
0xffbedf58:     -Duser.language=en
0xffbedf6b:     -Duser.country=TW
0xffbedf7d:     -da
0xffbedf81:     -Dplatform.home=/export/bea/weblogic81
0xffbedfa8:     -Dwls.home=/export/bea/weblogic81/server
0xffbedfd1:     -Dwli.home=/export/bea/weblogic81/integration
0xffbedfff:     -Dlog4j.configuration=file:/export/bea/weblogic81/common/lib/workshopLogCfg.xml
0xffbee04f:     -Dweblogic.management.discover=false
0xffbee074:     -Dweblogic.management.server=http://f868ora.tsmc.com.tw:7121
0xffbee0b1:     -Dweblogic.security.SSL.ignoreHostnameVerify=false
0xffbee0e4:     -Dwlw.iterativeDev=false
0xffbee0fd:     -Dwlw.testConsole=false
0xffbee115:     -Dwlw.logErrorsToConsole=false
0xffbee134:     -Dweblogic.Name=dpmesuatap2
0xffbee150:     -Djava.security.policy=/export/bea/weblogic81/server/lib/weblogic.policy
0xffbee199:     weblogic.Server
dbx>
###@###.### 10/6/04 03:02 GMT

This peculiar kind of heap corruption is still reproducible at 1.4.2_08,
and it has now been reproduced with a small demo application without any
BEA WebLogic components involved  (just imitating BEA's arrangement of
arrays and objects and approximating their typical life cycles).

###@###.### 2005-06-11 21:32:56 GMT