Details
-
Enhancement
-
Resolution: Fixed
-
P4
-
17, 20
-
b07
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8297318 | 17.0.6 | Aleksey Shipilev | P4 | Resolved | Fixed | b04 |
Description
It has comments:
// TODO: It should not be necessary to check evac-in-progress here.
// We do it for mark-compact, which may have forwarded objects,
// and objects in cset and gets here via runtime barriers.
// We can probably fix this as soon as mark-compact has its own
// marking phase.
if (obj == fwd && _heap->is_evacuation_in_progress()) {
Thread* t = Thread::current();
ShenandoahEvacOOMScope oom_evac_scope(t);
return _heap->evacuate_object(obj, t);
}
We have separate mark-compact marking phase sinceJDK-8255019, but above statement is still *not* true, since it can not handle the scenario when concurrent/degenerated GC upgrades to Full GC.
// TODO: It should not be necessary to check evac-in-progress here.
// We do it for mark-compact, which may have forwarded objects,
// and objects in cset and gets here via runtime barriers.
// We can probably fix this as soon as mark-compact has its own
// marking phase.
if (obj == fwd && _heap->is_evacuation_in_progress()) {
Thread* t = Thread::current();
ShenandoahEvacOOMScope oom_evac_scope(t);
return _heap->evacuate_object(obj, t);
}
We have separate mark-compact marking phase since
Attachments
Issue Links
- backported by
-
JDK-8297318 Shenandoah: Remove inaccurate comment on SBS::load_reference_barrier()
- Resolved