Uh oh!
There was an error while loading. Please reload this page.
stream: keep overlapping broadcast reads pending - #63500
Merged
nodejs-github-bot merged 1 commit intoJun 20, 2026
Merged
Conversation
nodejs-github-bot
commented
May 23, 2026
Collaborator
Review requested:
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@## main #63500 +/- ##
=======================================
Coverage 90.34% 90.35% =======================================
Files 732 732 Lines 236689 236741 +52 Branches 44586 44601 +15 =======================================
+ Hits 213839 213897 +58
Misses 14550 14550 + Partials 8300 8294 -6
🚀 New features to boost your workflow:
|
jasnell
approved these changes
May 23, 2026
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
trivikrforce-pushed
the
stream-iter-broadcast-next-pending
branch
from
May 25, 2026 22:22
87668cb to
ae779b6Comparetrivikrforce-pushed
the
stream-iter-broadcast-next-pending
branch
from
May 25, 2026 22:24
ae779b6 to
c556978Comparetrivikr
commented
May 25, 2026
MemberAuthor
Requested a re-review, as the previous fix incorrectly resolved the second Details in #63499 (comment) |
trivikrforce-pushed
the
stream-iter-broadcast-next-pending
branch
from
May 27, 2026 01:21
c556978 to
c47708dComparetrivikrforce-pushed
the
stream-iter-broadcast-next-pending
branch
3 times, most recently
from
June 2, 2026 03:43
f1aaff6 to
d2bf99eComparetrivikrforce-pushed
the
stream-iter-broadcast-next-pending
branch
3 times, most recently
from
June 13, 2026 14:06
af686c7 to
1ac85e8Comparetrivikrforce-pushed
the
stream-iter-broadcast-next-pending
branch
from
June 15, 2026 03:53
1ac85e8 to
e35fdedCompareBroadcast consumers may receive overlapping next() calls on the same iterator. Queue those reads so chunks satisfy them in call order. A single written chunk should resolve the earliest pending next(); later next() calls remain pending until more data is written or the broadcast completes. Fixes: nodejs#63499 Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> Assisted-by: openai:gpt-5.5
trivikrforce-pushed
the
stream-iter-broadcast-next-pending
branch
from
June 18, 2026 00:24
e35fded to
8a996e3Comparejasnell
approved these changes
Jun 19, 2026
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
nodejs-github-bot
commented
Jun 20, 2026
Collaborator
Uh oh!
There was an error while loading. Please reload this page.
nodejs-github-bot
commented
Jun 20, 2026
Collaborator
Landed in d1eaaf6 |
aduh95 pushed a commit
that referenced
this pull request
Jun 20, 2026
Broadcast consumers may receive overlapping next() calls on the same iterator. Queue those reads so chunks satisfy them in call order. A single written chunk should resolve the earliest pending next(); later next() calls remain pending until more data is written or the broadcast completes. Fixes: #63499 Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> Assisted-by: openai:gpt-5.5 PR-URL: #63500Fixes: #63499 Reviewed-By: James M Snell <jasnell@gmail.com>
aduh95 pushed a commit
to aduh95/node
that referenced
this pull request
Jul 30, 2026
Broadcast consumers may receive overlapping next() calls on the same iterator. Queue those reads so chunks satisfy them in call order. A single written chunk should resolve the earliest pending next(); later next() calls remain pending until more data is written or the broadcast completes. Fixes: nodejs#63499 Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> Assisted-by: openai:gpt-5.5 PR-URL: nodejs#63500Fixes: nodejs#63499 Reviewed-By: James M Snell <jasnell@gmail.com>
aduh95 pushed a commit
that referenced
this pull request
Aug 6, 2026
Broadcast consumers may receive overlapping next() calls on the same iterator. Queue those reads so chunks satisfy them in call order. A single written chunk should resolve the earliest pending next(); later next() calls remain pending until more data is written or the broadcast completes. Fixes: #63499 Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> Assisted-by: openai:gpt-5.5 PR-URL: #63500 Backport-PR-URL: #64675Fixes: #63499 Reviewed-By: James M Snell <jasnell@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
broadcast()consumers could leave an earliernext()call pending foreverwhen another
next()was called before data became available. The later calloverwrote the stored resolver, so the next write resolved the newer promise
instead of the older one.
This updates broadcast consumers to keep the first pending read intact. A
later overlapping
next()now closes that consumer, while the original pendingread still receives the next chunk.
Fixes: #63499
Assisted-by: openai:gpt-5.5