RFR (S): JDK-8152949: Jigsaw crash when Klass in _fixup_module_field_list is unloaded
Lois Foltan
lois.foltan at oracle.com
Fri Apr 15 12:50:31 UTC 2016
On 4/14/2016 4:23 PM, Dean Long wrote:
> Do the inc_keep_alive() and dec_keep_alive() updates need to be
> atomic by any chance?
Thanks Dean for the review and good point. I will make that change and
send out an updated webrev.
Lois
>
> dl
>
> On 4/14/2016 12:29 PM, Lois Foltan wrote:
>> Hello,
>>
>> Please review the following fix:
>>
>> Webrev:
>> http://cr.openjdk.java.net/~lfoltan/bug_jdk8152949/
>>
>> Bug: Jigsaw crash when Klass in _fixup_module_field_list is unloaded
>> https://bugs.openjdk.java.net/browse/JDK-8152949
>>
>> Summary:
>> Prior to java.base being defined to the VM by the module system
>> initialization, classes loaded must be saved on a fixup list in order
>> to later have their java.lang.Class' module field patched with
>> java.base's java.lang.reflect.Module object once java.base is
>> defined. Before module system initialization is complete, all
>> classes loaded must have java.base as their defining module and be
>> loaded by the boot loader. It was erroneously assumed that all
>> classes placed on the module fixup list therefore would not die
>> before java.base was defined. This assumption did not hold for
>> anonymous classes which have a shorter lifetime than the boot
>> loader. Test cases run with a small heap, -Xmx2m, would cause GC to
>> unload the anonymous classes on the fixup list, later causing issues
>> when an attempt was made to patch these classes with java.base's
>> java.lang.reflect.Module object. Thank you to Per Liden and Stefan
>> Karlsson for contributing this fix for the runtime team.
>>
>> Test:
>> - java/lang, java/util, java/io, all Hotspot jtreg tests, Hotspot
>> colocated tests & noncolo.quick.testlist
>> - several iterations of ConcurrentLinkedQueue/RemoveLeak.java which
>> exhibited the problem
>
More information about the hotspot-dev
mailing list