|
Quick Lists
|
|
Bug ID:
|
6722112
|
|
Votes
|
0
|
|
Synopsis
|
CMS: Incorrect encoding of overflown object arrays during concurrent precleaning
|
|
Category
|
hotspot:garbage_collector
|
|
Reported Against
|
|
|
Release Fixed
|
hs14(b03),
1.4.2_19-rev(b09) (Bug ID:2166040)
, 5.0u18-rev(b03) (Bug ID:2166041)
, hs11(b17) (Bug ID:2166206)
, hs10(b27) (Bug ID:2169512)
, 6u7-rev(b15) (Bug ID:2169513)
, 6u12(b01) (Bug ID:2170226)
, 5.0u19(b01) (Bug ID:2174432)
, 1.4.2_21(b01) (Bug ID:2174450)
|
|
State
|
10-Fix Delivered,
bug
|
|
Priority:
|
3-Medium
|
|
Related Bugs
|
6578335
,
6681372
,
6697967
,
6752632
|
|
Submit Date
|
03-JUL-2008
|
|
Description
|
Here's the "evaluation" from 6578335 during whose investigation
this problem was first diagnosed:
What we were doing is that if we overflowed the marking stack
when trying to push a newly marked (now grey) customer encountered during
precleaning, we would just dirty the card the customer (now marked)
lay on, with the expectation that a later precleaning pass or the final
remark phase (which would pick up all remaining dirty cards) would deal
with the customer . But of course in the case of an customer _array_,
preclean/remark would just scrub the dirty pages not the entire array,
so the part of the customer array that protruded off the dirtied page
on to a possibly clean page would not be scanned and if that part
contained references to white objects, those would be lost.
The fix of course is in the case of overflown customer arrays,
to dirty all the pages that the newly marked overflown customer array
lies on when encoding its greyness for the purposes of rescan (by a
later preclean pass or the subsequent final remark).
Posted Date : 2008-07-03 00:27:41.0
|
|
Work Around
|
No known workaround other than to turn off precleaning entirely: -XX:-CMSPrecleaningEnabled.
Increasing the size of the marking stack via -XX:CMSMarkStackSize{,Max} would
reduce the probability of hitting this bug.
|
|
Evaluation
|
Note that this bug exists at least since 5uXX and possibly in 1.4.2_XX as
well, and right up to current HSX 14. Appropriate subCR's will need to be
filed.
Posted Date : 2008-07-03 00:27:41.0
http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/9199f248b0ee
Posted Date : 2008-08-15 12:07:30.0
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |