> 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:

  Update 
src/java.net.http/share/classes/jdk/internal/net/http/ConnectionPool.java

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/20623/files
  - new: https://git.openjdk.org/jdk/pull/20623/files/da64bb8a..dc52bbc1

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=20623&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20623&range=01-02

  Stats: 1 line in 1 file changed: 0 ins; 1 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/20623.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20623/head:pull/20623

PR: https://git.openjdk.org/jdk/pull/20623

Reply via email to