Daniel, > On 31 Jul 2020, at 15:56, Daniel Fuchs <daniel.fu...@oracle.com> wrote: > > Hi, > > Please find below a fix for: > > 8229822: ThrowingPushPromises tests sometimes fail due to EOF > https://bugs.openjdk.java.net/browse/JDK-8229822 > > While trying to write a good test for JDK-8245462 I stumbled > on two issues - which I believe are at the root of the > ThrowingPushPromises failures: > > - SocketTube: I found an issue where the scheduler might not > be restarted if resuming/pausing event from within > the scheduler loop (that runs in the selector manager > thread) failed due to the socket being asynchronously > closed by another thread. > That could cause some tests to fail in timeout.
Good sleuthing. I’m surprised that we’ve not come across this before, but what you have seems to catch these corner cases, ( the last one on L889 was non-obvious ). > - Http2Connection/Stream: there was an issue where DataFrames > could be sent after a ResetFrame was sent. That caused the > server to close down the connection. The next test would > start opening a new stream on the same connection while > the server was concurrently closing it, and the test > would eventually fail - sometimes with a message saying > "EOF reached while reading”. Wow, there’s a lot going on in this change, that covers cases where connection / streams are closed at various different points especially very early in their lifecycle. > The webrev below includes these two fixes; The test have simply been > update to list 8229822 for verification purposes. > > webrev: > http://cr.openjdk.java.net/~dfuchs/webrev_8229822/webrev.00/ I think that this is fine, and I know that you have further changes coming to add additional tests and scenarios where closure / cancellation can occur. -Chris.