JDK-8338569 : HTTP/1.1 CleanupTrigger may be triggerred after the next exchange started
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.net
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2024-08-19
  • Updated: 2024-09-05
  • Resolved: 2024-08-29
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 24
24 b14Fixed
Related Reports
Relates :  
Description
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.
Comments
Changeset: 723588a4 Branch: master Author: Daniel Fuchs <dfuchs@openjdk.org> Date: 2024-08-29 08:54:02 +0000 URL: https://git.openjdk.org/jdk/commit/723588a4e78d25f0ef3c4cdaeb377aedc3a352d4
29-08-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/20623 Date: 2024-08-19 09:36:54 +0000
19-08-2024