RFR: 8267404: vmTestbase/vm/mlvm/anonloader/stress/oome/metaspace/Test.java failed with OutOfMemoryError

Stefan Karlsson stefank at openjdk.java.net
Fri May 21 08:46:27 UTC 2021


On Fri, 21 May 2021 05:11:51 GMT, Jie Fu <jiefu at openjdk.org> wrote:

> Hi all,
> 
> vmTestbase/vm/mlvm/anonloader/stress/oome/metaspace/Test.java OOMEs on Oracle's aarch64 platforms.
> The reason is that both -Xmx and -XX:MetaspaceSize are not enough.
> 
> From the original JBS decription of JDK-8267404, the VM OOMEs before the expected OOME in metaspace happened showing that -Xmx256m is not enough.
> 
> Then, @dcubed-ojdk helped me test with -Xmx512, which still OOMEs.
> However, the expected OOME in metaspace was caught this time.
> But a second uncaught OOME in metaspace happened soon, which means -XX:MetaspaceSize=8m is not enough.
> 
> So both -Xmx and -XX:MetaspaceSize should be increased.
> The fix just:
>   - Revert changes about mataspace size setting
>   - Increase -Xmx from 256m to 1g
> 
> -Xmx512m may be OK on Oracle's aarch64 machines, but to make it safer, -Xmx1g is preferred.
> 
> Thanks.
> Best regards,
> Jie

Maybe this is already understood, but in case it is not clear: -XX:MetaspaceSize is only used to determine at what point the first metaspace-induced GC should happen. When the Metaspace is filled up to that value, we trigger a GC. It is -XX:MaxMetaspaceSize that is the limit of how much memory we may commit for the metaspace.

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

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


More information about the hotspot-runtime-dev mailing list