Hi,

While analyzing some of the later failure traces reported for
https://bugs.openjdk.java.net/browse/JDK-8170940
8170940: test/java/net/httpclient/TimeoutOrdering.java
         failing intermittently
I began to suspect that this was not caused by a test bug.

Looking at the timeout handling code in httpclient,
I have identified a number of race conditions
in the http/2 client timeout logic.
The races can be observed quite easily by supplying a very
small timeout (1ms). In that case the new SmallTimeout test
in the webrev below, which is a modified clone
of TimeOrdering, will always hang.

webrev:
http://cr.openjdk.java.net/~dfuchs/webrev_8170940/webrev.00/

I also suspect these races to be at the root cause of
https://bugs.openjdk.java.net/browse/JDK-8170940
8170940: test/java/net/httpclient/TimeoutOrdering.java
         failing intermittently
so I am planning to close 8170940 as a duplicate of 8178147
when 8178147 is pushed.

I would like to propose this be fixed for JDK 9.

best regards,

-- daniel

Reply via email to