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

Daniel Fuchs dfuchs at openjdk.org
Wed Jan 28 11:03:51 UTC 2026


On Tue, 27 Jan 2026 17:07:38 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:

>> test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http3/Http3ServerStreamImpl.java line 334:
>> 
>>> 332:                 if (closed) {
>>> 333:                     throw new IOException("Stream is closed");
>>> 334:                 }
>> 
>> we should not do that if this.error != null.
>
> I'd say that `closed` has a higher priority than `error`, because `closed` means that the stream was closed by the user.

OK. We can revisit later if we see that the `error` throwable should have appeared in the log but doesn't.

>> test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http3/Http3ServerStreamImpl.java line 358:
>> 
>>> 356:                         var error = this.error;
>>> 357:                         if (error == null) return -1;
>>> 358:                         throw error;
>> 
>> these lines should be protected by the lock.
>
> That's not necessary. If we received an EOF, either the InputStream is closed, or the QUIC stream is finished, or it is reset. The closed case was already handled above, and EOF and reset are mutually exclusive.

OK

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

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


More information about the net-dev mailing list