Title: stream: keep overlapping broadcast reads pending by trivikr · Pull Request #63500 · nodejs/node · GitHub
Open Graph Title: stream: keep overlapping broadcast reads pending by trivikr · Pull Request #63500 · nodejs/node
X Title: stream: keep overlapping broadcast reads pending by trivikr · Pull Request #63500 · nodejs/node
Description: broadcast() consumers could leave an earlier next() call pending forever when another next() was called before data became available. The later call overwrote 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 pending read still receives the next chunk. Fixes: #63499 Assisted-by: openai:gpt-5.5
Open Graph Description: broadcast() consumers could leave an earlier next() call pending forever when another next() was called before data became available. The later call overwrote the stored resolver, so the next write...
X Description: broadcast() consumers could leave an earlier next() call pending forever when another next() was called before data became available. The later call overwrote the stored resolver, so the next write...
Opengraph URL: https://github.com/nodejs/node/pull/63500
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:c2535beb-9689-eb8f-dd4f-139f1a726682 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | DF4C:306DA5:BA4FFC:FCADF2:6A4C9340 |
| html-safe-nonce | 972ef32ea8277d7762270bd442a3c9efb04d74b36bf25989891246adefde86b1 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERjRDOjMwNkRBNTpCQTRGRkM6RkNBREYyOjZBNEM5MzQwIiwidmlzaXRvcl9pZCI6Ijg3MTY3NDg0MDQyMTg3NTg1IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | e7e26e9a462a2887ef46caec3d1b24a36739b5f2de19cc04e263c1f53139a6cb |
| hovercard-subject-tag | pull_request:3733832229 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/nodejs/node/pull/63500/files |
| twitter:image | https://avatars.githubusercontent.com/u/16024985?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/16024985?s=400&v=4 |
| og:image:alt | broadcast() consumers could leave an earlier next() call pending forever when another next() was called before data became available. The later call overwrote the stored resolver, so the next write... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3d11bb817438277de2a940854450e83a7d32b6aeb5014e9e6b00a6423900251c |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/nodejs/node git https://github.com/nodejs/node.git |
| octolytics-dimension-user_id | 9950313 |
| octolytics-dimension-user_login | nodejs |
| octolytics-dimension-repository_id | 27193779 |
| octolytics-dimension-repository_nwo | nodejs/node |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 27193779 |
| octolytics-dimension-repository_network_root_nwo | nodejs/node |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7a2dede45637df6b92ddcfe2a557e67d4b5854ae |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width