-
-
Notifications
You must be signed in to change notification settings - Fork 34.5k
fs: refactor close to use destroy #15407
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
jasnell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
I was not able to write a test for the given issue, but I am fairly certain that this solves the problem. I am not really able to write a test to reproduce the change of behavior, which should stay fairly the same. I have flagged this as semver-major as I fear it might introduce bugs and regressions. A CITGM run might help. |
|
Understood |
|
I would like this to land in Node 9 if possible. cc @nodejs/tsc for another approval as it's semver-major. CITGM: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/991/ |
lib/fs.js
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should the callback really be triggered sync?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good spot. Updating.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor nit: This is a private API, but it is worth testing. close() calls this. fits on one line.
b577e46 to
276ef74
Compare
Refactor close() to use destroy() and not vice versa in ReadStream. Avoid races between WriteStream.close and WriteStream.write, by aliasing close to end(). Fixes: nodejs#2006
276ef74 to
2985aca
Compare
|
Can somebody that understand what's the status on citgm verify if this is causing issues or not? It seems a lot of red in citgm is transient. I have rebased against master. |
|
cc @refack can you have a look? |
|
@mcollina as far as I can read the citgm results by now I would say it is a "green" build 😆 |
|
@mcollina the citgm results between this PR and master don't look too far off, but I will say that there is now a huge delta between 8.x and 9.x on citgm which is a bit disturbing. Can't dig into it today but we should figure out what shifted on master to break so many things |
|
@mcollina I didn't see anything new in CitGM |
graceful-fs passes localy |
refack
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CitGM is clean
|
Landed as e5c290b. |
Refactor close() to use destroy() and not vice versa in ReadStream.
Avoid races between WriteStream.close and WriteStream.write, by aliasing close to end().
Fixes: #2006
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passesAffected core subsystem(s)
fs, stream