RFR 8243572: Multiple tests fail with assert(cld->klasses() != 0LL) failed: unexpected NULL for cld->klasses()

Harold Seigel harold.seigel at oracle.com
Tue Apr 28 18:52:40 UTC 2020

Thanks Lois!


On 4/28/2020 2:43 PM, Lois Foltan wrote:
> Looks good.
> Lois
> On 4/28/2020 1:27 PM, Harold Seigel wrote:
>> Hi,
>> Please review this fix for JDK-8243572 and JDK-8243336.  Both 
>> failures were caused by calling function ClassLoaderData::klasses() 
>> and expecting a non-null return value. However, when the CLD had no 
>> classes then NULL was returned causing the assertion failure in one 
>> case and SIGSEGV in the other.
>> Function klasses() was called in these places to determine if the 
>> ClassLoaderData was for a hidden class or an unsafe anonymous class.  
>> This was done during CLD statistics collection and for JFR events 
>> involving CLD's.
>> Since the JDK has replaced uses of unsafe anonymous classes with 
>> hidden classes, there should be very few unsafe anonymous classes.  
>> So, it was decided (with mgronlun and mchung) that the VM and JFR 
>> need no longer distinguish between hidden and unsafe anonymous 
>> classes when gathering CLD statistics and when CLD's are displayed in 
>> JFR events.  Instead, unsafe anonymous classes will be counted as 
>> hidden classes for CLD statistics, and JFR will show CLD's for both 
>> hidden and unsafe anonymous classes as hidden.
>> Open Webrev: 
>> http://cr.openjdk.java.net/~hseigel/bug_8243572/webrev/index.html
>> JBS Bugs: https://bugs.openjdk.java.net/browse/JDK-8243572 and 
>> https://bugs.openjdk.java.net/browse/JDK-8243336
>> The fix was regression tested by running Mach5 tiers 1 and 2 tests 
>> and builds on Linux-x64, Solaris, Windows, and Mac OS X, by running 
>> Mach5 tiers 3-5 tests on Linux-x64, and running tier 7 tests multiple 
>> times on Windows and also on Mac OS X.  Tier 7 testing on Linux-X64 
>> is in progress.
>> Thanks, Harold

More information about the hotspot-runtime-dev mailing list