On Tue, 27 Oct 2020 00:52:20 GMT, Serguei Spitsyn <sspit...@openjdk.org> wrote:
>> Richard Reingruber has updated the pull request with a new target base due >> to a merge or a rebase. The incremental webrev excludes the unrelated >> changes brought in by the merge/rebase. The pull request contains four >> additional commits since the last revision: >> >> - Skip test cases expecting OOMEs if running with ZGC. >> - Merge branch 'master' into JDK-8255072-eatests-oom-not-thrown >> - Make OOME more reliable and skip test cases if it is not expected because >> scalar replacement is disabled >> - 8255072: [TESTBUG] com/sun/jdi/EATests.java should not fail if expected >> VMOutOfMemoryException is not thrown > > Hi Richard, > It looks good to me. > One nit: > public static final boolean DoEscapeAnalysis = > unbox(WB.getBooleanVMFlag("DoEscapeAnalysis"), UseJVMCICompiler); > public static final boolean EliminateAllocations = > unbox(WB.getBooleanVMFlag("EliminateAllocations"), UseJVMCICompiler); // read > by debugger > public static final boolean DeoptimizeObjectsALot = > WB.getBooleanVMFlag("DeoptimizeObjectsALot"); // read by > debugger > public static final long BiasedLockingBulkRebiasThreshold = > WB.getIntxVMFlag("BiasedLockingBulkRebiasThreshold"); > public static final long BiasedLockingBulkRevokeThreshold = > WB.getIntxVMFlag("BiasedLockingBulkRevokeThreshold"); > + public static final boolean ZGCIsSelected = GC.Z.isSelected(); > There are unneeded spaces before '=' sign. > > Thanks, > Serguei Hi Serguei, thanks for reviewing. I'll remove the whitespace. I'm able now to reproduce the issue but only with ZGC. So far my attempts(*) to reliably get the OOME during ForceEarlyReturn/PopFrame because of object reallocation failed though. So I'm still in favour of the current solution which is: skip the 3 problematic testcases if ZGC is selected in the target vm. I'm still open for suggestions also though. I'll wait a few more days and then I'll integrate. Thanks, Richard. (*) I tried: - disable TLAB - call WhiteBox.fullGC() in consumeAllMemory() before the last round of allocations. - Check if the memory can be allocated by the thread doing the PopFrame/ForceEarlyReturn. com.sun.jdi.ThreadReference::invokeMethod() cannot be used. A target thread has to be specified and the jdwp threads are not visible through jdi. Only a dedicated native test JVMTI agent can consume all memory and then do the PopFrame/ForceEarlyReturn. ------------- PR: https://git.openjdk.java.net/jdk/pull/775