| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
|
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. |
Sorry, something went wrong.
|
Understood |
Sorry, something went wrong.
Sorry, something went wrong.
|
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/ |
Sorry, something went wrong.
There was a problem hiding this comment.
Should the callback really be triggered sync?
Sorry, something went wrong.
There was a problem hiding this comment.
Good spot. Updating.
Sorry, something went wrong.
There was a problem hiding this comment.
Minor nit: This is a private API, but it is worth testing. close() calls this. fits on one line.
Sorry, something went wrong.
Sorry, something went wrong.
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
|
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. |
Sorry, something went wrong.
|
CI: https://ci.nodejs.org/job/node-test-pull-request/10162/ |
Sorry, something went wrong.
|
@mcollina as far as I can read the citgm results by now I would say it is a "green" build 😆 |
Sorry, something went wrong.
|
@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 |
Sorry, something went wrong.
|
@mcollina I didn't see anything new in CitGM |
Sorry, something went wrong.
graceful-fs passes localy |
Sorry, something went wrong.
There was a problem hiding this comment.
CitGM is clean
Sorry, something went wrong.
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 PR-URL: #15407 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
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/node#2006 PR-URL: nodejs/node#15407 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
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/node#2006 PR-URL: nodejs/node#15407 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
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 PR-URL: nodejs#15407 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
* **async_hooks**
* Older experimental `async_hooks` APIs have been removed
[[`d731369b1d`](d731369b1d)]
**(SEMVER-MAJOR)** [#14414](#14414)
* **Errors**
* Multiple built in modules have been migrated to use static error codes
* **Domains**
* The long deprecated `.dispose()` method has been removed
[[`602fd36d95`](602fd36d95)]
**(SEMVER-MAJOR)** [#15412](#15412)
* **File system**
* `fs.ReadStream` and `fs.WriteStream` now make use of `.destroy()`
[[`e5c290bed9`](e5c290bed9)]
**(SEMVER-MAJOR)** [#15407](#15407)
* `fs` callbacks are now invoked with an undefined `this` context
[[`2249234fee`](2249234fee)]
**(SEMVER-MAJOR)** [#14645](#14645)
* **HTTP**
* Socket timeout is set when the socket connects
[[`10be20a0e8`](10be20a0e8)]
**(SEMVER-MAJOR)** [#8895](#8895)
* A bug causing the request `error` event to fire twice has been fixed
[[`620ba41694`](620ba41694)]
**(SEMVER-MAJOR)** [#14659](#14659)
* The `pipe` method on `OutgoingMessage` has been disabled
[[`156549d8ff`](156549d8ff)]
**(SEMVER-MAJOR)** [#14358](#14358)
* **HTTP/2**
* The `--expose-http2` command-line argument is no longer required
[[`f55ee6e24a`](f55ee6e24a)]
**(SEMVER-MAJOR)** [#15535](#15535)
* **Internationalization**
* The `Intl.v8BreakIterator` class has been removed
[[`668ad44922`](668ad44922)]
**(SEMVER-MAJOR)** [#15238](#15238)
* **OS**
* `os.EOL` is now read-only
[[`f6caeb9526`](f6caeb9526)]
**(SEMVER-MAJOR)** [#14622](#14622)
* **Process**
* It is now possible to pass additional flags to `dlopen`
[[`5f22375922`](5f22375922)]
**(SEMVER-MAJOR)** [#12794](#12794)
* **Timers**
* Using a timeout duration larger than 32-bits will now emit a warning
[[`ce3586da31`](ce3586da31)]
**(SEMVER-MAJOR)** [#15627](#15627)
* **TLS**
* `parseCertString` has been deprecated
[[`468110b327`](468110b327)]
**(SEMVER-MAJOR)** [#14249](#14249)
* Type-checking for `key`, `cert`, and `ca` options has been added
[[`a7dccd040d`](a7dccd040d)]
**(SEMVER-MAJOR)** [#14807](#14807)
* **async_hooks**
* Older experimental `async_hooks` APIs have been removed
[[`d731369b1d`](d731369b1d)]
**(SEMVER-MAJOR)** [#14414](#14414)
* **Errors**
* Multiple built in modules have been migrated to use static error codes
* **Domains**
* The long deprecated `.dispose()` method has been removed
[[`602fd36d95`](602fd36d95)]
**(SEMVER-MAJOR)** [#15412](#15412)
* **File system**
* `fs.ReadStream` and `fs.WriteStream` now make use of `.destroy()`
[[`e5c290bed9`](e5c290bed9)]
**(SEMVER-MAJOR)** [#15407](#15407)
* `fs` callbacks are now invoked with an undefined `this` context
[[`2249234fee`](2249234fee)]
**(SEMVER-MAJOR)** [#14645](#14645)
* **HTTP**
* Socket timeout is set when the socket connects
[[`10be20a0e8`](10be20a0e8)]
**(SEMVER-MAJOR)** [#8895](#8895)
* A bug causing the request `error` event to fire twice has been fixed
[[`620ba41694`](620ba41694)]
**(SEMVER-MAJOR)** [#14659](#14659)
* The `pipe` method on `OutgoingMessage` has been disabled
[[`156549d8ff`](156549d8ff)]
**(SEMVER-MAJOR)** [#14358](#14358)
* **HTTP/2**
* The `--expose-http2` command-line argument is no longer required
[[`f55ee6e24a`](f55ee6e24a)]
**(SEMVER-MAJOR)** [#15535](#15535)
* **Internationalization**
* The `Intl.v8BreakIterator` class has been removed
[[`668ad44922`](668ad44922)]
**(SEMVER-MAJOR)** [#15238](#15238)
* **OS**
* `os.EOL` is now read-only
[[`f6caeb9526`](f6caeb9526)]
**(SEMVER-MAJOR)** [#14622](#14622)
* **Process**
* It is now possible to pass additional flags to `dlopen`
[[`5f22375922`](5f22375922)]
**(SEMVER-MAJOR)** [#12794](#12794)
* **Timers**
* Using a timeout duration larger than 32-bits will now emit a warning
[[`ce3586da31`](ce3586da31)]
**(SEMVER-MAJOR)** [#15627](#15627)
* **TLS**
* `parseCertString` has been deprecated
[[`468110b327`](468110b327)]
**(SEMVER-MAJOR)** [#14249](#14249)
* Type-checking for `key`, `cert`, and `ca` options has been added
[[`a7dccd040d`](a7dccd040d)]
**(SEMVER-MAJOR)** [#14807](#14807)
* **async_hooks**
* Older experimental `async_hooks` APIs have been removed
[[`d731369b1d`](d731369b1d)]
**(SEMVER-MAJOR)** [#14414](#14414)
* **Errors**
* Multiple built in modules have been migrated to use static error codes
* **Domains**
* The long deprecated `.dispose()` method has been removed
[[`602fd36d95`](602fd36d95)]
**(SEMVER-MAJOR)** [#15412](#15412)
* **File system**
* `fs.ReadStream` and `fs.WriteStream` now make use of `.destroy()`
[[`e5c290bed9`](e5c290bed9)]
**(SEMVER-MAJOR)** [#15407](#15407)
* `fs` callbacks are now invoked with an undefined `this` context
[[`2249234fee`](2249234fee)]
**(SEMVER-MAJOR)** [#14645](#14645)
* **HTTP**
* Socket timeout is set when the socket connects
[[`10be20a0e8`](10be20a0e8)]
**(SEMVER-MAJOR)** [#8895](#8895)
* A bug causing the request `error` event to fire twice has been fixed
[[`620ba41694`](620ba41694)]
**(SEMVER-MAJOR)** [#14659](#14659)
* The `pipe` method on `OutgoingMessage` has been disabled
[[`156549d8ff`](156549d8ff)]
**(SEMVER-MAJOR)** [#14358](#14358)
* **HTTP/2**
* The `--expose-http2` command-line argument is no longer required
[[`f55ee6e24a`](f55ee6e24a)]
**(SEMVER-MAJOR)** [#15535](#15535)
* **Internationalization**
* The `Intl.v8BreakIterator` class has been removed
[[`668ad44922`](668ad44922)]
**(SEMVER-MAJOR)** [#15238](#15238)
* **OS**
* `os.EOL` is now read-only
[[`f6caeb9526`](f6caeb9526)]
**(SEMVER-MAJOR)** [#14622](#14622)
* **Process**
* It is now possible to pass additional flags to `dlopen`
[[`5f22375922`](5f22375922)]
**(SEMVER-MAJOR)** [#12794](#12794)
* **Timers**
* Using a timeout duration larger than 32-bits will now emit a warning
[[`ce3586da31`](ce3586da31)]
**(SEMVER-MAJOR)** [#15627](#15627)
* **TLS**
* `parseCertString` has been deprecated
[[`468110b327`](468110b327)]
**(SEMVER-MAJOR)** [#14249](#14249)
* Type-checking for `key`, `cert`, and `ca` options has been added
[[`a7dccd040d`](a7dccd040d)]
**(SEMVER-MAJOR)** [#14807](#14807)
* **async_hooks**
* Older experimental `async_hooks` APIs have been removed
[[`d731369b1d`](d731369b1d)]
**(SEMVER-MAJOR)** [#14414](#14414)
* **Errors**
* Multiple built in modules have been migrated to use static error codes
* **Domains**
* The long deprecated `.dispose()` method has been removed
[[`602fd36d95`](602fd36d95)]
**(SEMVER-MAJOR)** [#15412](#15412)
* **File system**
* `fs.ReadStream` and `fs.WriteStream` now make use of `.destroy()`
[[`e5c290bed9`](e5c290bed9)]
**(SEMVER-MAJOR)** [#15407](#15407)
* `fs` callbacks are now invoked with an undefined `this` context
[[`2249234fee`](2249234fee)]
**(SEMVER-MAJOR)** [#14645](#14645)
* **HTTP**
* Socket timeout is set when the socket connects
[[`10be20a0e8`](10be20a0e8)]
**(SEMVER-MAJOR)** [#8895](#8895)
* A bug causing the request `error` event to fire twice has been fixed
[[`620ba41694`](620ba41694)]
**(SEMVER-MAJOR)** [#14659](#14659)
* The `pipe` method on `OutgoingMessage` has been disabled
[[`156549d8ff`](156549d8ff)]
**(SEMVER-MAJOR)** [#14358](#14358)
* **HTTP/2**
* The `--expose-http2` command-line argument is no longer required
[[`f55ee6e24a`](f55ee6e24a)]
**(SEMVER-MAJOR)** [#15535](#15535)
* **Internationalization**
* The `Intl.v8BreakIterator` class has been removed
[[`668ad44922`](668ad44922)]
**(SEMVER-MAJOR)** [#15238](#15238)
* **OS**
* `os.EOL` is now read-only
[[`f6caeb9526`](f6caeb9526)]
**(SEMVER-MAJOR)** [#14622](#14622)
* **Process**
* It is now possible to pass additional flags to `dlopen`
[[`5f22375922`](5f22375922)]
**(SEMVER-MAJOR)** [#12794](#12794)
* **Timers**
* Using a timeout duration larger than 32-bits will now emit a warning
[[`ce3586da31`](ce3586da31)]
**(SEMVER-MAJOR)** [#15627](#15627)
* **TLS**
* `parseCertString` has been deprecated
[[`468110b327`](468110b327)]
**(SEMVER-MAJOR)** [#14249](#14249)
* Type-checking for `key`, `cert`, and `ca` options has been added
[[`a7dccd040d`](a7dccd040d)]
**(SEMVER-MAJOR)** [#14807](#14807)
Refactor WriteStream.prototype.close and WriteStream.prototype._destroy to always call the callback passed to close in order. Protects from calling .close() without a callback. Fixes: nodejs#17951 See: nodejs#15407
Refactor WriteStream.prototype.close and WriteStream.prototype._destroy to always call the callback passed to close in order. Protects from calling .close() without a callback. Fixes: #17951 See: #15407 PR-URL: #18002 Fixes: #17951 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
Refactor WriteStream.prototype.close and WriteStream.prototype._destroy to always call the callback passed to close in order. Protects from calling .close() without a callback. Fixes: #17951 See: #15407 PR-URL: #18002 Fixes: #17951 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
Refactor WriteStream.prototype.close and WriteStream.prototype._destroy to always call the callback passed to close in order. Protects from calling .close() without a callback. Fixes: #17951 See: #15407 PR-URL: #18002 Fixes: #17951 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
| Back | FazBrowse Home | New Git URL |
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
Affected core subsystem(s)
fs, stream