6847956: G1: crash in oopDesc*G1ParCopyHelper::copy_to_survivor_space(oopDesc*)

When we copy objects to survivors during marking, we incorrectly set NTAMS to bottom, which causes marking to miss visiting some of those objects.

Reviewed-by: apetrusenko, iveresov
This commit is contained in:
Antonios Printezis 2009-10-05 12:05:48 -04:00
parent 2684c3a431
commit 31de6adee9

@ -569,13 +569,8 @@ class HeapRegion: public G1OffsetTableContigSpace {
// ever evacuated into this region. If we evacuate, allocate, and
// then evacuate we are in deep doodoo.
void note_end_of_copying() {
assert(top() >= _next_top_at_mark_start,
"Increase only");
// Survivor regions will be scanned on the start of concurrent
// marking.
if (!is_survivor()) {
_next_top_at_mark_start = top();
}
assert(top() >= _next_top_at_mark_start, "Increase only");
_next_top_at_mark_start = top();
}
// Returns "false" iff no object in the region was allocated when the