RFR 8210422: runtime/modules/ModuleStress/ExportModuleStressTest.java - assertion failed: address not aligned: 0x00000008baadbabe

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Mon Sep 10 21:00:41 UTC 2018



On 9/10/18 2:07 PM, Lois Foltan wrote:
> On 9/10/2018 12:06 PM, coleen.phillimore at oracle.com wrote:
>
>>
>>
>> On 9/10/18 11:55 AM, Lois Foltan wrote:
>>> On 9/10/2018 9:37 AM, coleen.phillimore at oracle.com wrote:
>>>
>>>> Summary: CLDG_lock caused safepoint in inconsistent state
>>>>
>>>> See bug comments for more details.
>>>>
>>>> open webrev at http://cr.openjdk.java.net/~coleenp/8210422.01/webrev
>>>> bug link https://bugs.openjdk.java.net/browse/JDK-8210422
>>>>
>>>> Tested with mach5 hs-tier1-7.  There are good parallel class 
>>>> loading tests that test this code.  Unfortunately these tests 
>>>> aren't open yet.
>>>>
>>>> Thanks,
>>>> Coleen
>>>
>>> Looks good.  Minor comment:
>>>
>>> share/classfile/classLoaderData.cpp:
>>> line #1127 - you removed the comment "because adding the Symbol for 
>>> _name and _name_and_id might safepoint".  Isn't that still the 
>>> case?  If not, then why are we initializing those fields after the 
>>> loader data has been added to the CLDG and not before?
>>
>> I removed the comment because SymbolTable::new_symbol() doesn't 
>> safepoint anymore.  Gerard made SymbolTable_lock into 
>> SymbolArena_lock that doesn't check for safepoint.  But I thought it 
>> was best to keep the initializing name code where it was, in case it 
>> ever safepointed again.
>
> Ok thanks for the explanation!  Can you open an RFE for this because 
> it would be much cleaner to move the initialization of those 2 fields 
> to the ClassLoaderData's ctor which now sounds doable?

Since there were two questions about the same code, I moved the call to 
initialize_name to the constructor of ClassLoaderData, which is a lot 
nicer.  Reran parallel class loading tests, mach5 tier1,2 for 
verification, and reran these tests that look at the name of the class 
loader data (thanks Lois for the list).

  make run-test TEST=test/hotspot/jtreg/runtime/modules
  make run-test TEST=test/hotspot/jtreg/runtime/LoaderConstraints
  make run-test 
TEST=test/hotspot/jtreg/runtime/SharedArchiveFile/DumpSymbolAndStringTable.java
  make run-test 
TEST=test/hotspot/jtreg/runtime/logging/LoaderConstraintsTest.java
  make run-test 
TEST=jdk/java/lang/instrument/DaemonThread/TestDaemonThread.java

The change is only in classLoaderData.cpp (sorry forgot to do 
incremental before editing).

open webrev at http://cr.openjdk.java.net/~coleenp/8210422.02/webrev

Thanks!
Coleen
>
> Thanks,
> Lois
>
>>
>> thanks,
>> Coleen
>>
>>>
>>> Thanks,
>>> Lois
>>
>



More information about the hotspot-runtime-dev mailing list