RFR (S) 8175249: VMThread::run fails in VerifyBeforeExit : Universe::verify
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Tue Jan 23 14:55:51 UTC 2018
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.
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