Skip to content

Backport asynchronous write backpressure to 3.4 - #121

Open
jcalcote wants to merge 2 commits into
dCache:3.4from
jcalcote:fix/119-async-write-backpressure-3.4
Open

Backport asynchronous write backpressure to 3.4#121
jcalcote wants to merge 2 commits into
dCache:3.4from
jcalcote:fix/119-async-write-backpressure-3.4

Conversation

@jcalcote

@jcalcote jcalcote commented Sep 1, 2026

Copy link
Copy Markdown

Backport of #120 to the 3.4 release branch for the planned 3.4.4 release.

Changes

  • Stop accepting new streaming writes once the Grizzly asynchronous write queue is full.
  • Release the rejected buffer and terminate the saturated connection with an EOF-style failure.
  • Notify an application callback of write failure only while its request remains pending in ReplyQueue, preventing timeout-plus-write-failure double completion and detaching timed-out callbacks from queued writes.
  • Add regression tests for queue saturation and timeout-before-write-failure ordering.

Validation

  • JAVA_HOME=/usr/lib/jvm/java-21-openjdk-21.0.5.0.10-3.el8.x86_64 mvn --batch-mode --update-snapshots clean package
  • All six modules passed on the 3.4.4-SNAPSHOT branch.
  • 168 tests passed with 2 existing skips.
  • Compiled classes are Java 17 bytecode (major version 61).
  • git diff --check passed.

Related issue: #119.

John Calcote added 2 commits September 1, 2026 00:32
Signed-off-by: John Calcote <john.calcote@hammerspace.com>
(cherry picked from commit 02e8ae3)
Signed-off-by: John Calcote <john.calcote@hammerspace.com>
(cherry picked from commit b695db0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant