-
Enhancement
-
Resolution: Fixed
-
P4
-
8-shenandoah, 11-shenandoah, 13
-
b25
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8226038 | 14 | Aleksey Shipilev | P4 | Resolved | Fixed | team |
Currently the method can return NULL on the path where something else is contending over the write. In most current cases, that path works correctly, but not when something else (for example, inline fixup in barrier taken by Java thread) updates the references on their own.
Then, the CAS might fail (as it should), and the GC code would think that thread is responsible to show the object to the marking code. This is risky and would lead to bugs. Instead, we would want to reply with the most actual reference at all times.
Then, the CAS might fail (as it should), and the GC code would think that thread is responsible to show the object to the marking code. This is risky and would lead to bugs. Instead, we would want to reply with the most actual reference at all times.
- backported by
-
JDK-8226038 Rewire ShenandoahHeap::maybe_update_with_forwarded for contending fixups
- Resolved
- blocks
-
JDK-8222766 Shenandoah: streamline post-LRB CAS barrier (x86)
- Resolved
-
JDK-8225441 Cleanup ShenandoahHeap::atomic_compare_exchange_oop
- Resolved