JDK-8069411 : OutOfMemoryError in OverloadCompileQueueTest.java
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9,10,11,13,14,15
  • Priority: P5
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2015-01-20
  • Updated: 2024-11-20
  • Resolved: 2020-08-18
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 16
16 b12Fixed
Related Reports
Relates :  
Relates :  
Description
Java options: -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:CompileCommand=dontinline,Helper$TestCase::method -XX:+WhiteBoxAPI -XX:+SegmentedCodeCache

java.lang.OutOfMemoryError: GC overhead limit exceeded
	at java.util.Arrays.copyOf(Arrays.java:3332)
	at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137)
	at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121)
	at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:421)
	at java.lang.StringBuilder.append(StringBuilder.java:136)
	at com.oracle.java.testlibrary.Asserts.getMessage(Asserts.java:448)
	at com.oracle.java.testlibrary.Asserts.assertEquals(Asserts.java:166)
	at com.oracle.java.testlibrary.Asserts.assertEQ(Asserts.java:140)
	at Helper.callMethod(Helper.java:74)
	at CodeCacheStressRunner.test(CodeCacheStressRunner.java:48)
	at CodeCacheStressRunner$$Lambda$9/24300230.call(Unknown Source)
	at com.oracle.java.testlibrary.TimeLimitedRunner.call(TimeLimitedRunner.java:71)
	at CodeCacheStressRunner.runTest(CodeCacheStressRunner.java:40)
	at OverloadCompileQueueTest.main(OverloadCompileQueueTest.java:76)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:94)
	at java.lang.Thread.run(Thread.java:745)

Comments
URL: https://hg.openjdk.java.net/jdk/jdk/rev/0273f5046fed User: iignatyev Date: 2020-08-18 23:21:57 +0000
18-08-2020

The test had failed previously due to a message string copy in an old 2015 version of Assert class [1]. Please note getMessage is called not depending of lhs.equals(rhs) Modern code does not have that copying and I was unable to cause OOME in that spot, or in an area close to that spot, or in the test execution in general. The test will be un-quarantined. ======== [1] http://hg.openjdk.java.net/jdk/jdk/file/874d76e4699d/hotspot/test/testlibrary/com/oracle/java/testlibrary/Asserts.java#l166
10-08-2020

[~enikitin], if you have time, could you please pick it up from where Andrey left off?
08-07-2020

attached the patch prepared by @asaenkov (Andrey Saenkov) 3 years ago.
27-07-2018

This test is quarantined. ILW: I = L (testbug) L = M (intermittent) W = L (increase heap size) ILW=LML= P5
03-02-2015

ILW=Test fail due to undesirable OOM, rare, none=MLH=P4 + nightly = P1
23-01-2015