eclipse-openj9 / openj9

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Other
3.27k stars 721 forks source link

DaaLoadTest_daa1 testConvertBigDecimalNormals java.lang.OutOfMemoryError: Overflow: String length out of range #16527

Open pshipton opened 1 year ago

pshipton commented 1 year ago

https://openj9-jenkins.osuosl.org/job/Test_openjdk11_j9_special.system_aarch64_linux_Personal_testList_4/79 DaaLoadTest_daa1_special_5m_6 -Xgcpolicy:optavgpause -Xjit:count=0 -Xnocompressedrefs


DLT testFailure: testConvertBigDecimalNormals(net.openj9.test.decimals.TestDecimalData): Overflow: String length out of range
DLT java.lang.OutOfMemoryError: Overflow: String length out of range
DLT     at java.base/java.lang.StringConcatHelper.checkOverflow(StringConcatHelper.java:46)
DLT     at java.base/java.lang.StringConcatHelper.mixLen(StringConcatHelper.java:98)
DLT     at net.openj9.test.Utils.makeTestNameConverterValue(Utils.java:787)
DLT     at net.openj9.test.decimals.TestDecimalData.testConvertBigDecimalNormals(TestDecimalData.java:6812)
...
DLT testFailure: testNonExceptions(net.openj9.test.decimals.TestDecimalData): Overflow: String length out of range
DLT java.lang.OutOfMemoryError: Overflow: String length out of range
DLT     at java.base/java.lang.StringConcatHelper.checkOverflow(StringConcatHelper.java:46)
DLT     at java.base/java.lang.StringConcatHelper.mixLen(StringConcatHelper.java:98)
DLT     at net.openj9.test.Utils.makeTestNameConverterValue(Utils.java:787)
DLT     at net.openj9.test.decimals.TestDecimalData.testConvertBigDecimalNormals(TestDecimalData.java:6812)
DLT     at net.openj9.test.decimals.TestDecimalData.testNonExceptions(TestDecimalData.java:101)
pshipton commented 1 year ago

@0xdaryl fyi

knn-k commented 1 year ago

I ran three Grinder jobs (45x in total), and got no failures. https://openj9-jenkins.osuosl.org/job/Grinder/1819/ https://openj9-jenkins.osuosl.org/job/Grinder/1820/ https://openj9-jenkins.osuosl.org/job/Grinder/1821/

knn-k commented 1 year ago

Another Grinder job (30x) finished successfully. https://openj9-jenkins.osuosl.org/job/Grinder/1822/

0xdaryl commented 1 year ago

Not reproducible. Moving to backlog.

pshipton commented 1 year ago

https://openj9-jenkins.osuosl.org/job/Test_openjdk11_j9_special.system_aarch64_linux_Personal_testList_4/91 DaaLoadTest_daa1_special_5m_6 -Xgcpolicy:optavgpause -Xjit:count=0 -Xnocompressedrefs

DLT testFailure: testConvertBigDecimalNormals(net.openj9.test.decimals.TestDecimalData): Overflow: String length out of range
DLT java.lang.OutOfMemoryError: Overflow: String length out of range
DLT     at java.base/java.lang.StringConcatHelper.checkOverflow(StringConcatHelper.java:46)
DLT     at java.base/java.lang.StringConcatHelper.mixLen(StringConcatHelper.java:98)
DLT     at net.openj9.test.Utils.makeTestNameConverterValue(Utils.java:787)
DLT     at net.openj9.test.decimals.TestDecimalData.testConvertBigDecimalNormals(TestDecimalData.java:6812)

DLT testFailure: testNonExceptions(net.openj9.test.decimals.TestDecimalData): Overflow: String length out of range
DLT java.lang.OutOfMemoryError: Overflow: String length out of range
DLT     at java.base/java.lang.StringConcatHelper.checkOverflow(StringConcatHelper.java:46)
DLT     at java.base/java.lang.StringConcatHelper.mixLen(StringConcatHelper.java:98)
DLT     at net.openj9.test.Utils.makeTestNameConverterValue(Utils.java:787)
DLT     at net.openj9.test.decimals.TestDecimalData.testConvertBigDecimalNormals(TestDecimalData.java:6812)
DLT     at net.openj9.test.decimals.TestDecimalData.testNonExceptions(TestDecimalData.java:101)
JasonFengJ9 commented 6 months ago

JDK11 aarch64_linux(sles15-aarch64-1)

[2024-03-20T20:20:13.859Z] variation: Mode112
[2024-03-20T20:20:13.859Z] JVM_OPTIONS:  -Xgcpolicy:gencon -Xjit:count=0 -Xnocompressedrefs 

[2024-03-20T20:23:40.779Z] DLT 20:23:40.281 - Test failed. Details recorded in execution log.
[2024-03-20T20:23:42.112Z] DLT 20:23:40.477 - Test failed
[2024-03-20T20:23:42.112Z] DLT   Failure num.  = 1
[2024-03-20T20:23:42.112Z] DLT   Test number   = 13
[2024-03-20T20:23:42.112Z] DLT   Test details  = 'JUnit[net.openj9.test.decimals.TestDecimalData]'
[2024-03-20T20:23:42.112Z] DLT   Suite number  = 0
[2024-03-20T20:23:42.112Z] DLT   Thread number = 4
[2024-03-20T20:23:42.112Z] DLT >>> Captured test output >>>

[2024-03-20T20:23:42.112Z] DLT testFailure: testConvertBigDecimalNormals(net.openj9.test.decimals.TestDecimalData): Overflow: String length out of range
[2024-03-20T20:23:42.112Z] DLT java.lang.OutOfMemoryError: Overflow: String length out of range
[2024-03-20T20:23:42.112Z] DLT  at java.base/java.lang.StringConcatHelper.checkOverflow(StringConcatHelper.java:46)
[2024-03-20T20:23:42.112Z] DLT  at java.base/java.lang.StringConcatHelper.mixLen(StringConcatHelper.java:98)
[2024-03-20T20:23:42.112Z] DLT  at net.openj9.test.Utils.makeTestNameConverterValue(Utils.java:787)
[2024-03-20T20:23:42.112Z] DLT  at net.openj9.test.decimals.TestDecimalData.testConvertBigDecimalNormals(TestDecimalData.java:6812)

[2024-03-20T20:23:44.695Z] DaaLoadTest_daa1_special_5m_4_FAILED

50x grinder - passed

knn-k commented 6 months ago
java.lang.OutOfMemoryError: Overflow: String length out of range
    at java.base/java.lang.StringConcatHelper.checkOverflow(StringConcatHelper.java:46)
    at java.base/java.lang.StringConcatHelper.mixLen(StringConcatHelper.java:98)
    at net.openj9.test.Utils.makeTestNameConverterValue(Utils.java:787)

This means the String length passed to checkOverflow() was a negative value.

https://github.com/ibmruntimes/openj9-openjdk-jdk11/blob/openj9/src/java.base/share/classes/java/lang/StringConcatHelper.java#L44-L47 https://github.com/ibmruntimes/openj9-openjdk-jdk11/blob/openj9/src/java.base/share/classes/java/lang/StringConcatHelper.java#L97-L99 https://github.com/eclipse-openj9/openj9-systemtest/blob/master/openj9.test.daa/src/test.daa/net/openj9/test/Utils.java#L786-L788

Appending a boolean value (errorChecking) to a String.