RFR: 8376479: Http3 test server thread deadlock in ThrowingPublishersInRequest

Volkan Yazici vyazici at openjdk.org
Tue Jan 27 15:02:35 UTC 2026


On Tue, 27 Jan 2026 13:54:07 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.

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

> 329:             }
> 330:             ByteBuffer buffer = current();
> 331:             if (buffer == QuicStreamReader.EOF) {

Assume `current()` has failed and called `close(io)`, which registered `error`. If `buffer == EOF` (line 331) doesn't hold — which, AFAICT, it can — we will return `buffer.get() & 0xFF`. I guess this would be unexpected, right?

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

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


More information about the net-dev mailing list