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