8229822: ThrowingPushPromises tests sometimes fail due to EOF
Chris Hegarty
chris.hegarty at oracle.com
Fri Aug 7 11:04:06 UTC 2020
Daniel,
> On 31 Jul 2020, at 15:56, Daniel Fuchs <daniel.fuchs at 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.
More information about the net-dev
mailing list