On Thu, 22 Aug 2024 13:43:28 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 incrementally with one additional 
> commit since the last revision:
> 
>   Better exception message for ShutdownNow

This looks OK to me. Some of the files will need a copyright year update before 
integrating.

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

PR Review: https://git.openjdk.org/jdk/pull/20623#pullrequestreview-2266742224

Reply via email to