-
Type:
Bug
-
Resolution: Fixed
-
Priority:
P2
-
Affects Version/s: 26
-
Component/s: hotspot
-
b07
| Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
|---|---|---|---|---|---|---|
| JDK-8376454 | 26.0.1 | Thomas Schatzl | P2 | Resolved | Fixed | b03 |
| JDK-8376289 | 26 | Thomas Schatzl | P2 | Resolved | Fixed | b33 |
inline void G1BarrierSet::write_ref_field_post(T* field) {
volatile CardValue* byte = _card_table->byte_for(field);
if (*byte == G1CardTable::clean_card_val()) {
*byte = G1CardTable::dirty_card_val();
}
}
That attempts to make sure that _card_table is not potentially read twice, because if it were, we might get a card mark in the wrong card table, potentially causing crashes.
Could be the cause for JDK-8373944, at least it would show the same symptom.
- backported by
-
JDK-8376289 G1: Race in G1BarrierSet::write_ref_field_post()
-
- Resolved
-
-
JDK-8376454 G1: Race in G1BarrierSet::write_ref_field_post()
-
- Resolved
-
- caused by
-
JDK-8342382 Implement JEP 522: G1 GC: Improve Throughput by Reducing Synchronization
-
- Resolved
-
- relates to
-
JDK-8373944 ObjectMonitor::ExitOnSuspend can call java_lang_VirtualThread::set_onWaitingList() while in safepoint
-
- Open
-
- links to
-
Commit(jdk26)
openjdk/jdk/47c58dc6
-
Commit(master)
openjdk/jdk/0ad81fbd
-
Review(jdk26)
openjdk/jdk/29378
-
Review(master)
openjdk/jdk/29311