RFR (S) 8175249: VMThread::run fails in VerifyBeforeExit : Universe::verify
David Holmes
david.holmes at oracle.com
Wed Jan 24 00:31:54 UTC 2018
On 24/01/2018 12:55 AM, coleen.phillimore at oracle.com wrote:
> On 1/23/18 1:52 AM, Jiangli Zhou wrote:
>> Hi Coleen,
>>
>> The approach looks very clean.
>>
>> I have a question for the following in
>> ClassLoaderDataGraph::do_unloading(), which may not be an issue. The
>> ‘if' check is for anonymous class loader, which does not have
>> dictionary. So do_unloading(is_alive_closure) is not happening during
>> unloading of an anonymous class loader. Could a ‘pd’ for anonymous
>> class being added to any other loaders’ pd_set? I’ll try to construct
>> a test case.
>
> Yes anonymous classes do not have dictionaries, so their pd_set list in
> the dictionary don't need to be cleaned out.
>
> I don't know how you'd get a pd for an anonymous class added to other
> loader's pd_set, but this would clean them out too. This seems hard to
> maybe impossible to do, but thank you for thinking of this further. We
> don't put anonymous classes in the dictionaries so I think this is
> impossible.
IIUC if an anonymous class loads another class via another CL then its
PD will be associated with that other CL. But the PD for a VMAC is the
PD of its host-class, so that can't become unreachable until the
host-class is unreachable. So processing of the host-class will clean
out the PD from the other CL.
David
-----
> thanks,
> Coleen
>>
>> 1294 if (data->dictionary() != NULL) {
>> 1295 data->dictionary()->do_unloading(is_alive_closure);
>> 1296 }
>> Thanks,
>> Jiangli
>>
>>> On Jan 22, 2018, at 3:52 PM, coleen.phillimore at oracle.com
>>> <mailto:coleen.phillimore at oracle.com> wrote:
>>>
>>> Summary: protection domain package access cache needs to be walked in
>>> unloading
>>>
>>> Tested with mach5 tier1-5 on linux and windows, and with tests in the
>>> bug report.
>>>
>>> open webrev at http://cr.openjdk.java.net/~coleenp/8175249.01/webrev
>>> <http://cr.openjdk.java.net/%7Ecoleenp/8175249.01/webrev>
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8175249
>>>
>>> Thanks,
>>> Coleen
>>
>
More information about the hotspot-runtime-dev
mailing list