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

Reply via email to