On Wed, 28 Aug 2024 17:06:34 GMT, Daniel Fuchs <dfu...@openjdk.org> wrote:

>> The java/net/httpclient/DigestEchoClient.java fails intemittently with 
>> IOException: HTTP/1.1 header parser received no bytes.
>> 
>> Analysis shows that this is caused by the CleanupTrigger which receives data 
>> after the reused connection has been taken out of the HTTP/1.1 clear pool. 
>> This should not happen.
>> 
>> The issue is caused by deferred registration of read subscribers with the 
>> SocketTube. The subscribers are registered within the SelectorManager thread 
>> to ensure proper interaction with the read method.
>> 
>> Sometimes pending subscribers are pushed faster than they are actually 
>> subscribed, which may cause the wrong subscriber to be subscribed at the 
>> wrong time. 
>> 
>> This is a redo of [JDK-8336655](https://bugs.openjdk.org/browse/JDK-8336655) 
>> which was a failed fix.
>> The main difference is that the new fix uses a ConcurrentLinkedQueue to make 
>> sure all subscribers get subscribed and dropped in the right sequence. 
>> Marking previous subscription as stopped ensures that data can only be 
>> routed to the last subscriber in the queue.
>
> Daniel Fuchs has updated the pull request with a new target base due to a 
> merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains five additional 
> commits since the last revision:
> 
>  - Copyright year updates
>  - Merge branch 'master' into CleanupTrigger-2-JDK-8338569
>  - Update 
> src/java.net.http/share/classes/jdk/internal/net/http/ConnectionPool.java
>  - Better exception message for ShutdownNow
>  - 8338569

Thanks Jaikiran. I will integrate tomorrow.

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

PR Comment: https://git.openjdk.org/jdk/pull/20623#issuecomment-2315956734

Reply via email to