On Tue, 22 Nov 2022 21:34:38 GMT, Daniel Fuchs <[email protected]> wrote:
>> The java/net/httpclient/SpecialHeadersTest.java test has been observed
>> failing once, due to a selector thread still running after all operations
>> had terminated. This change slightly alter the test logic to check the
>> shared client only at the end of the test when all methods have been
>> executed, and focussed the checks performed by a test method to the only
>> clients that this method is using. This may or may not prevent the observed
>> issue to ever reproducing, but should at least provide more information on
>> where the selector manager thread is at the time it is observed running,
>> should the test fail again:
>> the logic of the HttpClient should have woken up the selector when the last
>> operation finished, which should have ensured a prompt termination of the
>> thread.
>> In addition this change fixes a small race condition in the logic that
>> attempts to decide if the selector is still alive: the selector should be
>> considered alive until its run() method has been called and has exited (or
>> Thread::start has thrown).
>
> Daniel Fuchs has updated the pull request incrementally with one additional
> commit since the last revision:
>
> Fixed race condition in detecting if selector is still alive
test/jdk/java/net/httpclient/ReferenceTracker.java line 248:
> 246: if (fail != null) {
> 247: if (printThreads && tracker.isSelectorAlive()) {
> 248: var msg = "Selector manager threads are still alive for
> " + tracker.getName() + ": ";
Nit:
Suggestion:
var msg = "Selector manager threads are still alive for " +
tracker.getName() + ": ";
-------------
PR: https://git.openjdk.org/jdk/pull/11294