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