-
Bug
-
Resolution: Fixed
-
P3
-
hs20, hs21, 6u25, 6u27, 7
-
b05
-
generic, x86, sparc
-
generic, solaris, solaris_10
-
Not verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2208121 | 7 | Y. Ramakrishna | P3 | Closed | Fixed | b135 |
Run with for example:
-XX:+PrintGCDetails -XX:+ShowMessageBoxOnError XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=2 -XX:ParallelCMSThreads=10 -XX:+CMSConcurrentMTEnabled -XX:CMSInitiatingOccupancyFraction=1 -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/referenceProcessor.cpp:925
==============================================================================
Unexpected Error
------------------------------------------------------------------------------
Internal Error at referenceProcessor.cpp:925, pid=11636, tid=13
Error: assert(0 <= id && id < _num_q,"Id is out-of-bounds (call Freud?)")
Do you want to debug the problem?
To debug, run 'dbx - 11636'; then switch to thread 13
Enter 'yes' to launch dbx automatically (PATH must include dbx)
Otherwise, press RETURN to abort...
==============================================================================
current thread: t@13
[1] _waitid(0x0, 0x2d75, 0xf257f198, 0x3, 0x0, 0xfdae2800), at 0xff2c19e4
[2] _waitpid(0x2d75, 0xf257f2e0, 0x0, 0x2d75, 0xd, 0x0), at 0xff268404
[3] waitpid(0x2d75, 0xf257f2e0, 0x0, 0x0, 0x0, 0xfdae2800), at 0xff2b48dc
=>[4] os::fork_and_exec(cmd = 0xff12ffd8 "dbx - 11636"), line 5761 in "os_solaris.cpp"
[5] VMError::show_message_box(this = 0xf257f520, buf = 0xff12ffd8 "dbx - 11636", buflen = 2000), line 53 in "vmError_solaris.cpp"
[6] VMError::report_and_die(this = 0xf257f520), line 661 in "vmError.cpp"
[7] report_assertion_failure(file_name = 0xfef8262c "/net/neeraja/export/ysr/hg-gc/src/share/vm/memory/referenceProcessor.cpp", line_no = 925, message = 0xfef82675 "assert(0 <= id && id < _num_q,"Id is out-of-bounds (call Freud?)")"), line 173 in "debug.cpp"
[8] ReferenceProcessor::get_discovered_list(this = 0x1f0e70, rt = REF_FINAL), line 925 in "referenceProcessor.cpp"
[9] ReferenceProcessor::discover_reference(this = 0x1f0e70, obj = 0xf44182d0, rt = REF_FINAL), line 1081 in "referenceProcessor.cpp"
[10] instanceRefKlass::oop_oop_iterate_nv(this = 0xf742ca68, obj = 0xf44182d0, closure = 0xf257f7d8), line 208 in "instanceRefKlass.cpp"
[11] oopDesc::oop_iterate(this = 0xf44182d0, blk = 0xf257f7d8), line 470 in "oop.inline.hpp"
[12] Par_MarkFromRootsClosure::scan_oops_in_oop(this = 0xf257f9e4, ptr = 0xf44182d0), line 7063 in "concurrentMarkSweepGeneration.cpp"
[13] Par_MarkFromRootsClosure::do_bit(this = 0xf257f9e4, offset = 24756U), line 6980 in "concurrentMarkSweepGeneration.cpp"
[14] BitMap::iterate(this = 0xa6448, blk = 0xf257f9e4, leftOffset = 0, rightOffset = 131072U), line 450 in "bitMap.cpp"
[15] CMSBitMap::iterate(this = 0xa6404, cl = 0xf257f9e4, left = 0xf4400000, right = 0xf4480000), line 223 in "concurrentMarkSweepGeneration.inline.hpp"
[16] CMSConcMarkingTask::do_scan_and_mark(this = 0xf237fb94, i = 0, sp = 0x73e80), line 3849 in "concurrentMarkSweepGeneration.cpp"
[17] CMSConcMarkingTask::work(this = 0xf237fb94, i = 0), line 3710 in "concurrentMarkSweepGeneration.cpp"
[18] YieldingFlexibleGangWorker::loop(this = 0xb2400), line 342 in "yieldingWorkgroup.cpp"
[19] GangWorker::run(this = 0xb2400), line 186 in "workgroup.cpp"
[20] java_start(thread_addr = 0xb2400), line 1010 in "os_solaris.cpp"
Current function is ReferenceProcessor::get_discovered_list
925 assert(0 <= id && id < _num_q, "Id is out-of-bounds (call Freud?)");
(dbx) print id
id = 8
(dbx) print _num_q
_num_q = 2
(dbx) print ParallelGCThreads
ParallelGCThreads = 2U
(dbx) print ParallelCMSThreads
ParallelCMSThreads = 10U
As of JDK 7, ParallelCMSThreads is now called ConcGCThreads, so the synopsis
(in the context of JDK 7) might read:-
CMS: reference processing crash if ConcGCThreads > ParallelGCThreads
-XX:+PrintGCDetails -XX:+ShowMessageBoxOnError XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=2 -XX:ParallelCMSThreads=10 -XX:+CMSConcurrentMTEnabled -XX:CMSInitiatingOccupancyFraction=1 -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/referenceProcessor.cpp:925
==============================================================================
Unexpected Error
------------------------------------------------------------------------------
Internal Error at referenceProcessor.cpp:925, pid=11636, tid=13
Error: assert(0 <= id && id < _num_q,"Id is out-of-bounds (call Freud?)")
Do you want to debug the problem?
To debug, run 'dbx - 11636'; then switch to thread 13
Enter 'yes' to launch dbx automatically (PATH must include dbx)
Otherwise, press RETURN to abort...
==============================================================================
current thread: t@13
[1] _waitid(0x0, 0x2d75, 0xf257f198, 0x3, 0x0, 0xfdae2800), at 0xff2c19e4
[2] _waitpid(0x2d75, 0xf257f2e0, 0x0, 0x2d75, 0xd, 0x0), at 0xff268404
[3] waitpid(0x2d75, 0xf257f2e0, 0x0, 0x0, 0x0, 0xfdae2800), at 0xff2b48dc
=>[4] os::fork_and_exec(cmd = 0xff12ffd8 "dbx - 11636"), line 5761 in "os_solaris.cpp"
[5] VMError::show_message_box(this = 0xf257f520, buf = 0xff12ffd8 "dbx - 11636", buflen = 2000), line 53 in "vmError_solaris.cpp"
[6] VMError::report_and_die(this = 0xf257f520), line 661 in "vmError.cpp"
[7] report_assertion_failure(file_name = 0xfef8262c "/net/neeraja/export/ysr/hg-gc/src/share/vm/memory/referenceProcessor.cpp", line_no = 925, message = 0xfef82675 "assert(0 <= id && id < _num_q,"Id is out-of-bounds (call Freud?)")"), line 173 in "debug.cpp"
[8] ReferenceProcessor::get_discovered_list(this = 0x1f0e70, rt = REF_FINAL), line 925 in "referenceProcessor.cpp"
[9] ReferenceProcessor::discover_reference(this = 0x1f0e70, obj = 0xf44182d0, rt = REF_FINAL), line 1081 in "referenceProcessor.cpp"
[10] instanceRefKlass::oop_oop_iterate_nv(this = 0xf742ca68, obj = 0xf44182d0, closure = 0xf257f7d8), line 208 in "instanceRefKlass.cpp"
[11] oopDesc::oop_iterate(this = 0xf44182d0, blk = 0xf257f7d8), line 470 in "oop.inline.hpp"
[12] Par_MarkFromRootsClosure::scan_oops_in_oop(this = 0xf257f9e4, ptr = 0xf44182d0), line 7063 in "concurrentMarkSweepGeneration.cpp"
[13] Par_MarkFromRootsClosure::do_bit(this = 0xf257f9e4, offset = 24756U), line 6980 in "concurrentMarkSweepGeneration.cpp"
[14] BitMap::iterate(this = 0xa6448, blk = 0xf257f9e4, leftOffset = 0, rightOffset = 131072U), line 450 in "bitMap.cpp"
[15] CMSBitMap::iterate(this = 0xa6404, cl = 0xf257f9e4, left = 0xf4400000, right = 0xf4480000), line 223 in "concurrentMarkSweepGeneration.inline.hpp"
[16] CMSConcMarkingTask::do_scan_and_mark(this = 0xf237fb94, i = 0, sp = 0x73e80), line 3849 in "concurrentMarkSweepGeneration.cpp"
[17] CMSConcMarkingTask::work(this = 0xf237fb94, i = 0), line 3710 in "concurrentMarkSweepGeneration.cpp"
[18] YieldingFlexibleGangWorker::loop(this = 0xb2400), line 342 in "yieldingWorkgroup.cpp"
[19] GangWorker::run(this = 0xb2400), line 186 in "workgroup.cpp"
[20] java_start(thread_addr = 0xb2400), line 1010 in "os_solaris.cpp"
Current function is ReferenceProcessor::get_discovered_list
925 assert(0 <= id && id < _num_q, "Id is out-of-bounds (call Freud?)");
(dbx) print id
id = 8
(dbx) print _num_q
_num_q = 2
(dbx) print ParallelGCThreads
ParallelGCThreads = 2U
(dbx) print ParallelCMSThreads
ParallelCMSThreads = 10U
As of JDK 7, ParallelCMSThreads is now called ConcGCThreads, so the synopsis
(in the context of JDK 7) might read:-
CMS: reference processing crash if ConcGCThreads > ParallelGCThreads
- backported by
-
JDK-2208121 CMS: reference processing crash if ParallelCMSThreads > ParallelGCThreads
-
- Closed
-
- duplicates
-
JDK-7031895 Regression caused by 6984287 needs to be fixed in 6uxx
-
- Closed
-
- relates to
-
JDK-7028845 CMS: 6984287 broke parallel reference processing in CMS
-
- Resolved
-