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 

> 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