Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8290108 | 20 | Albert Yang | P4 | Resolved | Fixed | b06 |
JDK-8291408 | 19.0.2 | Albert Yang | P4 | Resolved | Fixed | b01 |
JDK-8291251 | 19.0.1 | Albert Yang | P4 | Resolved | Fixed | b04 |
In `G1ConcurrentMark::clear_next_bitmap`:
```
guarantee(!may_yield || cl.is_complete(), "Must have completed iteration when not yielding.");
```
From the msg and the surroundong context, the intent is to check sth like:
```
if (!may_yield) {
assert(is_complete);
}
```
which should be `may_yield || is_complete`.
With the current code on master, this verification will trigger in a situation where a Full GC tries to start while concurrent-mark is in its final phase, i.e.
```
// Phase 7: Clear bitmap for next mark.
phase_clear_bitmap_for_next_mark();
```
```
guarantee(!may_yield || cl.is_complete(), "Must have completed iteration when not yielding.");
```
From the msg and the surroundong context, the intent is to check sth like:
```
if (!may_yield) {
assert(is_complete);
}
```
which should be `may_yield || is_complete`.
With the current code on master, this verification will trigger in a situation where a Full GC tries to start while concurrent-mark is in its final phase, i.e.
```
// Phase 7: Clear bitmap for next mark.
phase_clear_bitmap_for_next_mark();
```
- backported by
-
JDK-8290108 G1: Incorrect verification logic in G1ConcurrentMark::clear_next_bitmap
-
- Resolved
-
-
JDK-8291251 G1: Incorrect verification logic in G1ConcurrentMark::clear_next_bitmap
-
- Resolved
-
-
JDK-8291408 G1: Incorrect verification logic in G1ConcurrentMark::clear_next_bitmap
-
- Resolved
-
(1 links to)