> 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 
> (Caused by: java.io.IOException: Data received while in pool). This should 
> not happen.
> 
> The fix for [JDK-8338569](https://bugs.openjdk.org/browse/JDK-8338569) has 
> improved the situation but apparently didn't fix the issue completely.
> The issue is that the write publisher manages to come active before the read 
> subscriber has been switched, which opens a window in which the old read 
> subscriber receives the data that should have been passed to the new one.
> 
> To fix that, this change  proposes to pause reading at the selector level 
> before connecting the flows with the new publisher /subscriber pair. This 
> should ensure that data doesn't reach the "old" subscriber, if the new write 
> publisher manage to send data before the new read subscriber is subscribed.

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 four additional commits since 
the last revision:

 - Access pendingSubscriptions only from InternalReadSubscriptionImpl - and 
synchronize offer/handle to avoid concurrent removal from the queue
 - Merge branch 'master' into DigestEchoClient-cleanup-8357639
 - Avoid unnecessary volatile reads
 - 8357639

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/25416/files
  - new: https://git.openjdk.org/jdk/pull/25416/files/6abcee8f..ad1b28a1

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

  Stats: 36183 lines in 726 files changed: 27029 ins; 5883 del; 3271 mod
  Patch: https://git.openjdk.org/jdk/pull/25416.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25416/head:pull/25416

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

Reply via email to