RFR: 8289220: [Shenandoah] TestAllocObjectArrays fails intermittently
Aleksey Shipilev
shade at openjdk.org
Tue May 30 09:13:56 UTC 2023
On Tue, 30 May 2023 08:31:08 GMT, SUN Guoyun <duke at openjdk.org> wrote:
> command: make test CONF=fastdebug JTREG="VM_OPTIONS=-Xcomp" TEST=gc/TestAllocHumongousFragment.java
> error info:
>
> 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:1802)
> at java.base/sun.util.cldr.CLDRBaseLocaleDataMetaInfo.<clinit>(CLDRBaseLocaleDataMetaInfo.java:41)
> ... 24 more
>
> Note that the test runs with -XX:ShenandoahGCHeuristics=aggressive -XX:+ShenandoahOOMDuringEvacALot and SoftReferences are involved (LocaleObjectCache uses SoftReferences, used by printf method called in getRandomInstance(Utils.java:511)).
>
> Maybe we have to deal with the case where the getBaseLocale() return value is null. the call stack is:
>
> at java.base/sun.util.locale.LocaleObjectCache.get(LocaleObjectCache.java:64)
> at java.base/sun.util.locale.BaseLocale.getInstance(BaseLocale.java:169)
> at java.base/sun.util.locale.InternalLocaleBuilder.getBaseLocale(InternalLocaleBuilder.java:524)
> at java.base/java.util.Locale.forLanguageTag(Locale.java:1874)
>
> in LocaleObjectCache.java:64
>
> 62 if (key == null || newVal == null) {
> 63 // subclass must return non-null key/value object
> 64 return null; // run here
> 65 }
This also likely has little to do with Shenandoah itself, and it "only" reproduces because Shenandoah has the aggressively cleaning mode. So the synopsis should reflect the exact issue in `Locale`, once found.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/14211#issuecomment-1568070554
More information about the core-libs-dev
mailing list