Details
-
Bug
-
Resolution: Duplicate
-
P3
-
None
-
None
Description
This has been observed only on backport repo https://github.com/openjdk/shenandoah-jdk21u
Very rarely (and more frequently on aarch64 than x86), we encounter the following abnormal termination of jtreg test gc/shenandoah/TestAllocIntArrays.java#aggressive:
```
java.lang.ExceptionInInitializerError
at java.base/sun.util.cldr.CLDRLocaleProviderAdapter.<clinit>(CLDRLocaleProviderAdapter.java:58)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:421)
at java.base/java.lang.Class.forName(Class.java:412)
at java.base/sun.util.locale.provider.LocaleProviderAdapter.forType(LocaleProviderAdapter.java:193)
at java.base/sun.util.locale.provider.LocaleProviderAdapter.findAdapter(LocaleProviderAdapter.java:293)
at java.base/sun.util.locale.provider.LocaleProviderAdapter.getAdapter(LocaleProviderAdapter.java:264)
at java.base/java.text.DecimalFormatSymbols.getInstance(DecimalFormatSymbols.java:181)
at java.base/java.util.Formatter.getDecimalFormatSymbols(Formatter.java:2032)
at java.base/java.util.Formatter.getZero(Formatter.java:2040)
at java.base/java.util.Formatter$FormatSpecifier.localizedMagnitude(Formatter.java:4531)
at java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:3377)
at java.base/java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:3062)
at java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:3021)
at java.base/java.util.Formatter.format(Formatter.java:2791)
at java.base/java.io.PrintStream.implFormat(PrintStream.java:1367)
at java.base/java.io.PrintStream.format(PrintStream.java:1346)
at java.base/java.io.PrintStream.printf(PrintStream.java:1245)
at jdk.test.lib.Utils.getRandomInstance(Utils.java:527)
at TestAllocIntArrays.main(TestAllocIntArrays.java:214)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.NullPointerException: Cannot invoke "sun.util.locale.BaseLocale.getVariant()" because "base" is null
at java.base/java.util.Locale.forLanguageTag(Locale.java:1876)
at java.base/sun.util.cldr.CLDRBaseLocaleDataMetaInfo.<clinit>(CLDRBaseLocaleDataMetaInfo.java:39)
... 24 more
```
This typically happens less than 1 out of a hundred executions. Note that this test is configured with -XX:+ShenandoahOOMDuringEvacALot.
This test runs in 1G heap size. Typical freeset log_status() reports over 960M available to the mutator.
Very rarely (and more frequently on aarch64 than x86), we encounter the following abnormal termination of jtreg test gc/shenandoah/TestAllocIntArrays.java#aggressive:
```
java.lang.ExceptionInInitializerError
at java.base/sun.util.cldr.CLDRLocaleProviderAdapter.<clinit>(CLDRLocaleProviderAdapter.java:58)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:421)
at java.base/java.lang.Class.forName(Class.java:412)
at java.base/sun.util.locale.provider.LocaleProviderAdapter.forType(LocaleProviderAdapter.java:193)
at java.base/sun.util.locale.provider.LocaleProviderAdapter.findAdapter(LocaleProviderAdapter.java:293)
at java.base/sun.util.locale.provider.LocaleProviderAdapter.getAdapter(LocaleProviderAdapter.java:264)
at java.base/java.text.DecimalFormatSymbols.getInstance(DecimalFormatSymbols.java:181)
at java.base/java.util.Formatter.getDecimalFormatSymbols(Formatter.java:2032)
at java.base/java.util.Formatter.getZero(Formatter.java:2040)
at java.base/java.util.Formatter$FormatSpecifier.localizedMagnitude(Formatter.java:4531)
at java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:3377)
at java.base/java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:3062)
at java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:3021)
at java.base/java.util.Formatter.format(Formatter.java:2791)
at java.base/java.io.PrintStream.implFormat(PrintStream.java:1367)
at java.base/java.io.PrintStream.format(PrintStream.java:1346)
at java.base/java.io.PrintStream.printf(PrintStream.java:1245)
at jdk.test.lib.Utils.getRandomInstance(Utils.java:527)
at TestAllocIntArrays.main(TestAllocIntArrays.java:214)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.NullPointerException: Cannot invoke "sun.util.locale.BaseLocale.getVariant()" because "base" is null
at java.base/java.util.Locale.forLanguageTag(Locale.java:1876)
at java.base/sun.util.cldr.CLDRBaseLocaleDataMetaInfo.<clinit>(CLDRBaseLocaleDataMetaInfo.java:39)
... 24 more
```
This typically happens less than 1 out of a hundred executions. Note that this test is configured with -XX:+ShenandoahOOMDuringEvacALot.
This test runs in 1G heap size. Typical freeset log_status() reports over 960M available to the mutator.
Attachments
Issue Links
- duplicates
-
JDK-8309622 Re-examine the cache mechanism in BaseLocale
-
- Resolved
-