9 RFR: 8178147: Race conditions in timeout handling code in http/2 incubator client

Daniel Fuchs daniel.fuchs at oracle.com
Thu Apr 6 10:32:54 UTC 2017


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


More information about the net-dev mailing list