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