RFR: 8376479: Http3 test server thread deadlock in ThrowingPublishersInRequest [v2]

Daniel Fuchs dfuchs at openjdk.org
Tue Jan 27 19:10:55 UTC 2026


On Tue, 27 Jan 2026 18:54:52 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:

>> This fixes a deadlock between the thread that reads from the RequestBodyInputStream and the thread that tries to close it in response to a stream reset. See the linked JBS ticket for details.
>> 
>> Tier1 and tier2 tests continue to pass. I verified that with this change there are no busy threads at the end of the test.
>
> Daniel Jeliński has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Do not reset stream when read is interrupted

test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http3/Http3ServerStreamImpl.java line 337:

> 335:             ByteBuffer buffer = current();
> 336:             if (buffer == QuicStreamReader.EOF) {
> 337:                 return -1;

I don't think that's correct. If we get an error we set the error flag AND add EOF to the buffer list to unblock the reader. Therefore, you must check whether error == null before returning -1 - I believe you should restore lines 334-336 here.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/29448#discussion_r2733435912


More information about the net-dev mailing list