fs: fix process crash in fs.promises.writeFile#61849
Open
Han5991 wants to merge 1 commit intonodejs:mainfrom
Open
fs: fix process crash in fs.promises.writeFile#61849Han5991 wants to merge 1 commit intonodejs:mainfrom
Han5991 wants to merge 1 commit intonodejs:mainfrom
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #61849 +/- ##
=======================================
Coverage 89.72% 89.72%
=======================================
Files 675 675
Lines 204806 204834 +28
Branches 39355 39361 +6
=======================================
+ Hits 183761 183787 +26
- Misses 13330 13333 +3
+ Partials 7715 7714 -1
🚀 New features to boost your workflow:
|
This commit fixes an issue where the process would crash if the input stream emitted an error while the file was being opened. Fixes: nodejs#58742
5df105d to
d9248e5
Compare
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 free
to 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.
This commit fixes an issue where the process would crash if the input stream emitted an error while the file was being opened.
The issue was caused by a race condition where the stream would emit an 'error' event before the file handle was returned from
open(). Since there were no error listeners attached to the stream at that point, the process would crash with an "Unhandled 'error' event".This fix attaches a temporary error listener to the stream before calling
open(). If the stream emits an error, the promise is rejected immediately. Whenopen()completes (even if the stream already errored), the file handle is safely closed to prevent resource leaks.Fixes: #58742