Skip to content

Pin that a pipe waits for an erroring destination's in-flight write - #7501

Merged
jasnell merged 1 commit into
mainfrom
jasnell/ts-streams-pipe-dest-erroring-pin
Sep 24, 2026
Merged

jasnell merged 1 commit into
mainfrom
jasnell/ts-streams-pipe-dest-erroring-pin

Conversation

@jasnell

@jasnell jasnell commented Sep 24, 2026

Copy link
Copy Markdown
Collaborator

When the destination's controller errors while a write is in flight, the destination is erroring until the write settles. Backward error propagation waits for errored, so the source is not cancelled while the write is outstanding. The pipe rewrite in 04281be fixed this for the TS implementation: the old pump treated a rejected ready promise as the destination having errored.

C++ also waits, then fulfills the pipe (ledger #7).

When the destination's controller errors while a write is in flight,
the destination is erroring until the write settles. Backward error
propagation waits for errored, so the source is not cancelled while the
write is outstanding. The pipe rewrite in 04281be fixed this for the
TS implementation: the old pump treated a rejected ready promise as the
destination having errored.

C++ also waits, then fulfills the pipe (ledger #7).
@jasnell
jasnell requested review from guybedford and npaun September 24, 2026 17:23
@jasnell
jasnell requested review from a team as code owners September 24, 2026 17:23
@ask-bonk

ask-bonk Bot commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

LGTM

github run

@jasnell
jasnell merged commit 2854260 into main Sep 24, 2026
26 checks passed
@jasnell
jasnell deleted the jasnell/ts-streams-pipe-dest-erroring-pin branch September 24, 2026 19:01
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.

2 participants