-
Bug
-
Resolution: Unresolved
-
P4
-
None
-
None
In the existing implementation, a mutator may throw OOM after consulting a global variable that indicates that a certain number of consecutive unproductive GCs have been observed.
The problem with this approach is that the OOM thrown to one thread may cause that thread to cleanup memory so that other threads can proceed without OOM.
This behavior is exploited in certain jtreg tests, such as gc/shenandoah/oom/TestThreadFailure.java.
We need each thread to independently observe that an unproductive Full GC has been completed or that GC overhead limits has been exceeded before that thread throws OOM.
Part of the problem is that Shenandoah does not currently implement GC overhead limit is exceeded.
The problem with this approach is that the OOM thrown to one thread may cause that thread to cleanup memory so that other threads can proceed without OOM.
This behavior is exploited in certain jtreg tests, such as gc/shenandoah/oom/TestThreadFailure.java.
We need each thread to independently observe that an unproductive Full GC has been completed or that GC overhead limits has been exceeded before that thread throws OOM.
Part of the problem is that Shenandoah does not currently implement GC overhead limit is exceeded.
- relates to
-
JDK-8321401 GenShen: Each mutator must see FullGC before throwing OOM
- New
- links to
-
Review openjdk/jdk/16985