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

Lois Foltan lois.foltan at oracle.com
Tue Sep 11 14:00:18 UTC 2018


On 9/10/2018 5:00 PM, coleen.phillimore at oracle.com wrote:

>
>
> 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

Looks good.  I think we should open an RFE to initialize even the boot 
loader's _name and _name_and_id fields to BOOTSTRAP_LOADER_NAME during 
CLD construction, but that is minor and outside the scope of this change.

Thanks,
Lois

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



More information about the hotspot-runtime-dev mailing list