RFR: 8253857: Shenandoah: Bugs in ShenandoahEvacOOMHandler related code

Zhengyu Gu zgu at openjdk.java.net
Wed Sep 30 19:03:38 UTC 2020


There are a couple of bugs in ShenandoahEvacOOMHandler related code.

1) ShenandoahEvacOOMHandler::register_thread()
It does not do OOM check before blindly cmpxchg in threads_in_evac. The cmpxchg can success even OOM is in progress,
that results the thread to continue evacuate objects.

2) When a nested OOM scope encounters OOM, it does not decrease threads_in_evac count before entering
wait_for_no_evac_threads() loop, it deadlocks itself.

-------------

Commit messages:
 - 8253857: Shenandoah: Bugs in ShenandoahEvacOOMHandler related code

Changes: https://git.openjdk.java.net/jdk/pull/439/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=439&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8253857
  Stats: 26 lines in 2 files changed: 8 ins; 7 del; 11 mod
  Patch: https://git.openjdk.java.net/jdk/pull/439.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/439/head:pull/439

PR: https://git.openjdk.java.net/jdk/pull/439


More information about the shenandoah-dev mailing list