On Fri, 1 Jul 2022 18:36:26 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

>> Zhengyu Gu has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Incorporated plummercj's test changes
>
> test/jdk/com/sun/jdi/TestClassUnloadEvents.java line 61:
> 
>> 59:                     return;
>> 60:                 }
>> 61:             }
> 
> I know you were having issues with the test sometimes failing and asked about 
> if the GC's are deterministic, I assume this is the work around for that. My 
> concern is if something were to change and the test started to never get any 
> ClassUnloadEvents, that would go unnoticed. I'd rather you made it so the 
> test failed after exiting this loop, and bump up MAX_RETRY to a high enough 
> number so that we are unlikely to ever see that happen.
> 
> You should also have a look at the runtime/ClassUnload/UnloadTest.java and 
> see how it handles class unloading. It relies on the ClassUnloadCommon 
> library class. One difference I see there is that before doing a System.gc(), 
> it first allocates 16m of memory in 1k chunks to force a young gen 
> collection. I don't understand details of GC collection, but perhaps 
> System.gc() is simply promoting from the youngGen and therefore not freeing 
> any Class instance found there, so you need to promote first and then do the 
> full GC.

Changed to use `ClassUnloadCommon` for triggering class unloading.

> test/jdk/com/sun/jdi/TestClassUnloadEvents.java line 182:
> 
>> 180:                 eventSet.resume();
>> 181:             }
>> 182:         } catch (InterruptedException | VMCannotBeModifiedException | 
>> IOException | IllegalConnectorArgumentsException | VMStartException e) {
> 
> I think you should remove the try/catch and just declare that this method 
> throws Exception. That seems to be what other tests are doing.

Done.

-------------

PR: https://git.openjdk.org/jdk/pull/9168

Reply via email to