On Fri, 22 Mar 2024 19:26:33 GMT, Alex Menkov <amen...@openjdk.org> wrote:

>> The change fixes 3 nsk JDI tests.
>> Root cause in all 3 tests is the same - the tests requests JDI event with 
>> SUSPEND_ALL policy, but event handler thread stops handle incoming event and 
>> this causes debuggee to hang (suspended by JDI event).
>> 
>> All 3 tests are updated to exit event handler thread after getting 
>> VMDeathEvent or VMDisconnectEvent (and resume debuggee after any other 
>> events).
>> ClassPrepareEvent tests need to wait some time to allow handle all expected 
>> events before terminate the debuggee. The logic was implemented by using 
>> CountDownLatch.
>> 
>> All tests are passed with "--test-repeat 20"
>
> Alex Menkov has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   feedback

This looks good. I've posted a couple of nits/questions though.

One more question. Why these tests are failed with the UT enabled? Or maybe 
this was wrong assumption?

test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassPrepareEvent/referenceType/refType001.java
 line 134:

> 132:                         while (eventIterator.hasNext()) {
> 133:                             Event event = eventIterator.nextEvent();
> 134: //                            log.display("\nEvent received:\n  " + 
> event);

Nit: Would it make sense to uncomment this log message? How many events are 
normally printed?

test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassPrepareEvent/referenceType/refType001.java
 line 277:

> 275:                 if (!eventsReceivedLatch.await(eventTimeout, 
> TimeUnit.MILLISECONDS)) {
> 276:                     log.complain("FAILURE 20: Timeout waiting for all 
> events was exceeded");
> 277:                     testFailed = true;

As I understand the call to `eventHandler.interrupt()` is not needed now 
because now the `eventHandler` is expected to finish by itself when one of the 
events is received: `VMDeathEvent` or `VMDisconnectEvent`.

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

Marked as reviewed by sspitsyn (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/18442#pullrequestreview-1955749418
PR Comment: https://git.openjdk.org/jdk/pull/18442#issuecomment-2015874028
PR Review Comment: https://git.openjdk.org/jdk/pull/18442#discussion_r1536186503
PR Review Comment: https://git.openjdk.org/jdk/pull/18442#discussion_r1536184572

Reply via email to