-
Bug
-
Resolution: Fixed
-
P4
-
8-shenandoah, 11-shenandoah, 14, 15
-
b16
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8243265 | 14.0.2 | Aleksey Shipilev | P4 | Resolved | Fixed | b04 |
$ CONF=linux-x86_64-server-fastdebug make images run-test TEST=tools/jlink/JLinkTest.java TEST_VM_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC"
...
Error: Java heap space
java.lang.OutOfMemoryError: Java heap space
at java.base/java.io.InputStream.readNBytes(InputStream.java:442)
at java.base/java.io.InputStream.readAllBytes(InputStream.java:346)
at jdk.jlink/jdk.tools.jlink.plugin.ResourcePoolEntry.contentBytes(ResourcePoolEntry.java:127)
...
at jdk.jlink/jdk.tools.jlink.internal.Main$JlinkToolProvider.run(Main.java:63)
at tests.JImageGenerator$JLinkTask.call(JImageGenerator.java:715)
at tests.Helper.generateDefaultImage(Helper.java:257)
at JLinkTest.main(JLinkTest.java:264)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
Looks like humongous allocation failure from which Full GC is not able to recover.
Remarkably, the test passes with -XX:ParallelGCThreads=1, and no GC cycles happen with 1 parallel GC thread! Once you have 2 parallel GC threads, GC cycles start to happen and it reaches OOME.
...
Error: Java heap space
java.lang.OutOfMemoryError: Java heap space
at java.base/java.io.InputStream.readNBytes(InputStream.java:442)
at java.base/java.io.InputStream.readAllBytes(InputStream.java:346)
at jdk.jlink/jdk.tools.jlink.plugin.ResourcePoolEntry.contentBytes(ResourcePoolEntry.java:127)
...
at jdk.jlink/jdk.tools.jlink.internal.Main$JlinkToolProvider.run(Main.java:63)
at tests.JImageGenerator$JLinkTask.call(JImageGenerator.java:715)
at tests.Helper.generateDefaultImage(Helper.java:257)
at JLinkTest.main(JLinkTest.java:264)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
Looks like humongous allocation failure from which Full GC is not able to recover.
Remarkably, the test passes with -XX:ParallelGCThreads=1, and no GC cycles happen with 1 parallel GC thread! Once you have 2 parallel GC threads, GC cycles start to happen and it reaches OOME.
- backported by
-
JDK-8243265 Shenandoah: distribute mark-compact work exactly to minimize fragmentation
- Resolved
- is blocked by
-
JDK-8241351 Shenandoah: fragmentation metrics overhaul
- Resolved
-
JDK-8241435 Shenandoah: avoid disabling pacing with "aggressive"
- Resolved