Uh oh!
There was an error while loading. Please reload this page.
stream: prevent dead lock when Duplex generator is "thrown" - #56287
stream: prevent dead lock when Duplex generator is "thrown"#56287matthieusieben wants to merge 1 commit into
Conversation
nodejs-github-bot
commented
Dec 17, 2024
Review requested:
|
d8d8b42 to
361bc6cCompareCodecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@## main #56287 +/- ##
==========================================
- Coverage 88.54% 88.54% -0.01%
==========================================
Files 657 657 Lines 190285 190311 +26 Branches 36539 36540 +1 ==========================================
+ Hits 168490 168509 +19 - Misses 14974 14984 +10 + Partials 6821 6818 -3
🚀 New features to boost your workflow:
|
I believe #55096 could potentially cause a massive breakage in the eco-system - as I found out thru some of the user land applications / packages on nightly build. I'd suggest we revert 55096 and open another PR along with the fix in this PR and run a CITGM, so we can be more assured. Update: actually Robert has added the don't land labels on the PR cc. @nodejs/streams |
mcollina
commented
Dec 23, 2024
@jakecastelli@matthieusieben is this PR solves the breakage introduced? I agree with @jakecastelli, a quick revert is better. |
jakecastelli
commented
Dec 23, 2024
At least it passes the test that I found thru the broken user land application. There are a few potential cases I will need to look into during holidays. |
nodejs-github-bot
commented
Dec 28, 2024
Commit Queue failed- Loading data for nodejs/node/pull/56287 ✔ Done loading data for nodejs/node/pull/56287 ----------------------------------- PR info ------------------------------------ Title stream: prevent dead lock when Duplex generator is "thrown" (#56287) ⚠ Could not retrieve the email or name of the PR author's from user's GitHub profile! Branch matthieusieben:fix-56278 -> nodejs:main Labels stream, needs-ci, needs-citgm Commits 1 - stream: prevent dead lock when Duplex generator is "thrown" Committers 1 - Matthieu Sieben <matthieu.sieben@gmail.com> PR-URL: https://github.com/nodejs/node/pull/56287 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> ------------------------------ Generated metadata ------------------------------ PR-URL: https://github.com/nodejs/node/pull/56287 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> -------------------------------------------------------------------------------- ℹ This PR was created on Tue, 17 Dec 2024 12:57:50 GMT ✔ Approvals: 2 ✔ - Matteo Collina (@mcollina) (TSC): https://github.com/nodejs/node/pull/56287#pullrequestreview-2521954662 ✔ - James M Snell (@jasnell) (TSC): https://github.com/nodejs/node/pull/56287#pullrequestreview-2524628246 ⚠ This PR has conflicts that must be resolved ✔ Last GitHub CI successful ✘ No Jenkins CI runs detected -------------------------------------------------------------------------------- ✔ Aborted `git node land` session in /home/runner/work/node/node/.ncuhttps://github.com/nodejs/node/actions/runs/12527396373 |
mcollina
commented
Dec 28, 2024
Can you resolve the conflicts? |
jakecastelli
left a comment
There was a problem hiding this comment.
The resolution LGTM, but I am explicitly requesting changes as this PR has not yet run CI and CITGM. I will follow up once the merge conflict is resolved.
nodejs-github-bot
commented
Dec 28, 2024
nodejs-github-bot
commented
Dec 30, 2024
jakecastelli
left a comment
There was a problem hiding this comment.
Do you mind resolving the conflicts? so we can push this work forward
matthieusieben
commented
Jan 14, 2025
Hello, I'm sorry but I don't have much bandwidth at the moment. I do still want this in so I'll try to find some time in the near future. |
Hello, I'm doing some backlog hygiene on all PRs related to networking and streaming modules. There hasn't been any activity here for quite a while so I'm going to mark it Thank you! Side note: this looked to be very close to making it over the finish line before. Just need to resolve the merge conflicts and I think this is a valuable contribution. |
This issue/PR was marked as stalled, it will be automatically closed in 30 days. If it should remain open, please leave a comment explaining why it should remain open. |
Fixes regression introduced in #55096 and outlined in #56278.
When using a
for awaitloop, v8 (?) might call the.throwfunction of the iterable instead of the stream handlers (write,final,destroy). This can cause a dead lock as this line waits for a promise that will never be resolved (since the promise is setteled from the stream handlers).This PR adresses that issue by making sure the promise is resolved whenever the generator's
returnandthrowfunction are called, preventing the dead lock.cc @jakecastelli