Commit Graph
12903 Commits
Author SHA1 Message Date
Rich Trott e98bcfa2cb test: remove 1 second delay from test
In test-cluster-worker-wait-server-close, remove unneeded 1-second delay
and refactor to eliminate flakiness on FreeBSD.

PR-URL: https://github.com/nodejs/node/pull/4616
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 09:53:52 -08:00
Roman Klauke 4c132fe61e doc: make references clickable
The child_process docs contained some links, but some links were
somehow "broken". `make doc` couldn't translate them and left `[]`
in the compiled HTML.

PR-URL: https://github.com/nodejs/node/pull/4654
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 09:08:39 -08:00
Brian White 88b2889679 dgram: prevent disabled optimization of bind()
Reassigning a named parameter while also using the arguments
object causes the entire function to never be optimized.

PR-URL: https://github.com/nodejs/node/pull/4613
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 09:06:54 -08:00
Rod Vagg 3c70dc83ed doc: add CTC meeting minutes 2016-01-06
PR-URL: https://github.com/nodejs/node/pull/4667
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 09:04:13 -08:00
Rod Vagg 55326f5488 doc: add CTC meeting minutes 2015-12-16
PR-URL: https://github.com/nodejs/node/pull/4666
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 09:02:52 -08:00
Rod Vagg 1a346840bf doc: add CTC meeting minutes 2015-12-02
PR-URL: https://github.com/nodejs/node/pull/4665
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 09:01:15 -08:00
Rod Vagg 3ac5f8dcba doc: add CTC meeting minutes 2015-11-11
PR-URL: https://github.com/nodejs/node/pull/4664
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 08:58:31 -08:00
Rod Vagg db39625a44 doc: add CTC meeting minutes 2015-11-04
PR-URL: https://github.com/nodejs/node/pull/4663
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 08:55:10 -08:00
cjihrig 6cfd0b5a32 test: fix flaky test-net-socket-local-address
Prior to this commit, the test was flaky because it was
executing the majority of its logic in a function called from
the client and multiple events on the server. This commit
simplifies the test by separating the server's connection and
listening events, and isolating the client logic.

Refs: https://github.com/nodejs/node/pull/4476
Refs: https://github.com/nodejs/node/pull/4644
PR-URL: https://github.com/nodejs/node/pull/4650
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2016-01-13 11:43:46 -05:00
Rich Trott e22cc6c2eb test: fix race in test-net-server-pause-on-connect
A 50ms timeout results in a race condition. Instead, enforce expected
order through callbacks. This has the side effect of speeding up the
test in most situations.

Ref: https://github.com/nodejs/node/pull/4476
PR-URL: https://github.com/nodejs/node/pull/4637
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 08:35:59 -08:00
Ryan Sobol d139704ff7 doc: improve child_process.execFile() code example
PR-URL: https://github.com/nodejs/node/pull/4504
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
2016-01-13 11:24:33 -05:00
Myles Borins 287325c5e8 docs: update gpg key for Myles Borins
Original key did not have personal information associated with it.

The new key rectifies this problem

PR-URL: https://github.com/nodejs/node/pull/4657
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 08:13:50 -08:00
Myles Borins 65825b79aa docs: fix npm command in releases.md
PR-URL: https://github.com/nodejs/node/pull/4656
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 08:11:40 -08:00
Daniel Sellers d755432fa9 http: improves expect header handling
Now returns a 417 error status or allows for an event listener on
the `checkExpectation` event. Before we were ignoring requests that
had misspelled `100-continue` values for expect headers.

This is a quick port of the work done here:
https://github.com/nodejs/node-v0.x-archive/pull/7132 by alFReD-NSH
with surrounding discussion here:
https://github.com/nodejs/node-v0.x-archive/issues/4651

Also updates all the instances of the deprecated
EventEmitter.listenerCount to the current self.listenerCount. Most
of these were in the new code ported over but there was another
legacy instance.

Refs: #2403
PR-URL: https://github.com/nodejs/node/pull/4501
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 08:05:12 -08:00
Rod Vagg 4383acd9f4 build: fix and refactor VTune config in vcbuild.bat
PR-URL: https://github.com/nodejs/node/pull/4192
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 22:30:02 +11:00
Rod Vagg be0b0b8cb9 build: minor corrections in VTune configure text
PR-URL: https://github.com/nodejs/node/pull/4192
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 22:29:54 +11:00
Rich Trott 9164c00bdb test: move resource intensive tests to sequential
To enable greater parallelization of tests on CI, move resource
intensive tests out of parallel and into sequential.

Ref: https://github.com/nodejs/node/pull/4476
PR-URL: https://github.com/nodejs/node/pull/4615
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-12 19:49:01 -08:00
Myles Borins a254507dfa 2016-01-12, Version 5.4.1 (Stable)
Notable Changes:

* Minor performance improvements:
  - module: move unnecessary work for early return (Andres Suarez) https://github.com/nodejs/node/pull/3579
* Various bug fixes
* Various doc fixes
* Various test improvements

PR-URL: https://github.com/nodejs/node/pull/4626
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2016-01-12 16:12:31 -08:00
zoubin eeb6fdcd0f doc: add docs for more stream options
PR-URL: https://github.com/nodejs/node/pull/4639
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Chris Dickinson <chris@neversaw.us>
2016-01-12 12:49:42 -08:00
Myles Borins b6ab6d2de5 doc: add branch-diff example to releases.md
Useful to have for reference, especially for onboarding

PR-URL: https://github.com/nodejs/node/pull/4636
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell<jasnell@gmail.com>
2016-01-12 12:44:50 -08:00
Ben Noordhuis 7c60328002 module: optimize js and json file i/o
Use internalModuleReadFile() to read the file from disk to avoid the
fs.fstatSync() call that fs.readFileSync() makes.

It does so to know the file size in advance so it doesn't have to
allocate O(n) buffers when reading the file from disk.

internalModuleReadFile() is plenty efficient though, even more so
because we want a string and not a buffer.  This way we also don't
allocate a buffer that immediately gets thrown away again.

This commit reduces the number of fstat() system calls in a benchmark
application[0] from 549 to 29, all made by the application itself.

[0] https://github.com/strongloop/loopback-sample-app

PR-URL: https://github.com/nodejs/node/pull/4575
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-12 12:35:24 -08:00
Ben Noordhuis 038b636562 module: avoid ArgumentsAdaptorTrampoline frame
Avoid an unneeded ArgumentsAdaptorTrampoline stack frame by passing the
the right number of arguments to Module._load() in Module.require().
Shortens the following stack trace with one frame:

    LazyCompile:~Module.load module.js:345
    LazyCompile:Module._load module.js:282
    Builtin:ArgumentsAdaptorTrampoline
    LazyCompile:*Module.require module.js:361
    LazyCompile:*require internal/module.js:11

PR-URL: https://github.com/nodejs/node/pull/4575
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-12 12:35:18 -08:00
Ben Noordhuis 83f8d98806 module: cache stat() results more aggressively
Reduce the number of stat() system calls that require() makes by caching
the results more aggressively.

To avoid unbounded growth without implementing a LRU cache, scope the
cache to the lifetime of the first call to require().  Recursive calls
(i.e. require() calls in the included code) transparently profit from
the cache.

The benchmarked application is the loopback-sample-app[0] and it sees
the number of stat calls at start-up go down by 40%, from 4736 to 2810.

[0] https://github.com/strongloop/loopback-sample-app

PR-URL: https://github.com/nodejs/node/pull/4575
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-12 12:35:11 -08:00
Ben Noordhuis 809bf5e38c fs: change statSync to accessSync in realpathSync
fs.statSync() creates and returns a heavy-weight fs.Stat object whereas
fs.accessSync() simply returns nothing.  The return value is ignored,
the call is for its side effect of throwing an ELOOP error in case of
cyclic symbolic links.

PR-URL: https://github.com/nodejs/node/pull/4575
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-12 12:34:44 -08:00
Santiago Gimeno d8ba2c0de4 test: fix http-upgrade-client flakiness
It's not guaranteed that the socket data is received in the same chunk
as the upgrade response. Listen for the `data` event to make sure all
the data is received.

PR-URL: https://github.com/nodejs/node/pull/4602
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-12 12:15:35 -08:00
Santiago Gimeno 6018fa1f57 test: fix http-upgrade-agent flakiness
It's not guaranteed that the socket data is received in the same chunk
as the upgrade response. Listen for the `data` event to make sure all
the data is received.

PR-URL: https://github.com/nodejs/node/pull/4520
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-12 12:13:40 -08:00
Evan Lucas 3a7f106b8c net: remove hot path comment from connect
This comment was added with an assumption that we could determine the
IP address that localhost should resolve to without performing a
lookup. This was a false assumption and should be removed.

PR-URL: https://github.com/nodejs/node/pull/4648
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2016-01-12 09:56:05 -06:00
Rich Trott 0f3d75ea66 test: remove duplicate fork module import
`fork` is imported twice in a row. Remove duplication.

PR-URL: https://github.com/nodejs/node/pull/4634
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
2016-01-12 12:01:28 +01:00
Fedor Indutny 5a2445b0c0 tls_legacy: do not read on OpenSSL's stack
Do not attempt to read data from the socket whilst on OpenSSL's stack,
weird things may happen, and this is most likely going to result in some
kind of error.

PR-URL: https://github.com/nodejs/node/pull/4624
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-11 14:28:40 -05:00
Saquib 6039a7c1b5 fs: add autoClose option to fs.createWriteStream
Add support to fs.createWriteStream and fs.createWriteStream for an autoClose
option that behaves similarly to the autoClose option supported by
fs.createReadStream and fs.ReadStream.

When an instance of fs.createWriteStream created with autoClose === false finishes,
it is not destroyed. Its underlying fd is not closed and it is the
responsibility of the user to close it.

PR-URL: https://github.com/nodejs/node/pull/3679
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2016-01-11 11:03:52 -08:00
Robert Jefe Lindstaedt 5a53cba784 doc: adds usage of readline line-by-line parsing
In order to make developers aware of node-core built-in
functionality, which might replace module APIs, we should
add an example of readline`s interface usage.
SEO will eventually aid this goal, since it is well searched
on Q&A sites.

PR-URL: https://github.com/nodejs/node/pull/4609
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: James M Snell <jasnell@gmail.com>>
2016-01-11 19:53:05 +01:00
Rich Trott bbaf0f926d http: remove variable redeclaration
In lib/_http_client.js, the variable `conn` was declared with the `var`
keyword three times in the same scope. This change eliminates the
variable entirely.

PR-URL: https://github.com/nodejs/node/pull/4612
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-11 10:31:45 -08:00
Rich Trott 53cc9785ab src: remove redeclarations of variables
Remove redeclarations of variables in node.js. This includes removing
one apparently unnecessary `NativeModule.require('module')`.

PR-URL: https://github.com/nodejs/node/pull/4605
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-11 10:25:18 -08:00
Rich Trott bfc4823d00 test: require common module only once
Two tests were requiring the common module twice. This removes the
duplicate require statement in the tests.

PR-URL: https://github.com/nodejs/node/pull/4611
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-11 10:23:02 -08:00
Andres Suarez 1285671283 module: move unnecessary work for early return
The exts and trailingSlash variables are only used if the
path isn't cached. This commit moves them further down in the
code, and changes from var to const.

PR-URL: https://github.com/nodejs/node/pull/3579
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
2016-01-11 13:18:10 -05:00
Rich Trott 521f51ac1c test: only include http module once
A few tests in test/gc include the http module twice. Remove duplicate
require().

PR-URL: https://github.com/nodejs/node/pull/4606
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-11 10:16:58 -08:00
Richard Sun a2e77cedef doc: remove "above" and "below" references
The docs were recently refactored, and some "above" and "below"
references were no longer accurate. This commit removes many
such references, and replaces others with links.

PR-URL: https://github.com/nodejs/node/pull/4499
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-11 13:06:00 -05:00
Mudit Ameta e2f47f5698 util: Change how Error objects are formatted
Previously, Error objects were formatted as the result of a `toString`
call bounded by square brackets. They are now formatted as the stack
trace for the given error object. The intention initially was to emulate
how browsers do `console.error` but since that would also impact
`console.warn`, `console.log`, etc, it was decided to make the change at
`util.inspect` level which is in turn used by the `console` package.

Fixes: nodejs#4452
PR-URL: https://github.com/nodejs/node/pull/4582
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-11 09:57:15 -08:00
Roman Reiss d157976cec doc: update stylesheet to match frontpage
- Changed colors to match frontpage as close as possible.
- Links are slightly more horizontally padded as compared before to
  accomodate for the hover effect.
- Slightly reduced the scroll indication height on the TOC.
- The main content is now offset using margin instead of the previous
  border hack.
- remove empty footer that was rendering a dark bar on the bottom of
  each page without any content.

PR-URL: https://github.com/nodejs/node/pull/4621
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
2016-01-11 09:49:56 -08:00
zoubin ce9c93cac0 stream: remove useless if test in transform
PR-URL: https://github.com/nodejs/node/pull/4617
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
2016-01-11 18:46:06 +01:00
Jeremiah Senkpiel 5f0abd6472 2016-01-06, Version 5.4.0 (Stable)
* http:
  - A new status code was added: 451 - "Unavailable For Legal Reasons"
(Max Barinov) https://github.com/nodejs/node/pull/4377
  - Idle sockets that have been kept alive now handle errors (José F.
Romaniello) https://github.com/nodejs/node/pull/4482
* This release also includes several minor performance improvements:
  - assert: deepEqual is now speedier when comparing TypedArrays
(Claudio Rodriguez) https://github.com/nodejs/node/pull/4330
  - lib: Use arrow functions instead of bind where possible (Minwoo
Jung) https://github.com/nodejs/node/pull/3622
  - node: Improved accessor perf of process.env (Trevor Norris)
https://github.com/nodejs/node/pull/3780
  - node: Improved performance of process.hrtime() (Trevor Norris)
https://github.com/nodejs/node/pull/3780, (Evan Lucas)
https://github.com/nodejs/node/pull/4484
  - node: Improved GetActiveHandles performance (Trevor Norris)
https://github.com/nodejs/node/pull/3780
  - util: Use faster iteration in util.format() (Jackson Tian)
https://github.com/nodejs/node/pull/3964

Refs: https://github.com/nodejs/node/pull/4547
PR-URL: https://github.com/nodejs/node/pull/4623
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2016-01-11 12:42:53 -05:00
Rich Trott e071894202 test: fix flaky unrefed timers test
Remove unnecessary `setImmediate()` that causes a minor race condition.
Stop the test after 3 occurrences rather than 5 to allow for slower
hosts running the test in parallel with other tests.

Fixes: https://github.com/nodejs/node/issues/4559
PR-URL: https://github.com/nodejs/node/pull/4599
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2016-01-11 09:24:04 -08:00
Wyatt Preul d7c5110a79 doc: stronger suggestion for userland assert
Fixes: https://github.com/nodejs/node/issues/4532
PR-URL: https://github.com/nodejs/node/pull/4535
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
2016-01-11 10:17:31 -05:00
Feross Aboukhadijeh 101bca988c buffer: remove deprecated buffer.get/.set methods
These have been deprecated since Apr 27, 2013, and the plan was to
remove them in "node v0.13".

buffer.get(index) is superseded by buffer[index].
buffer.set(index, value) is superseded by buffer[index] = value.

These have never been documented at any point in node's history.

PR-URL: https://github.com/nodejs/node/pull/4594
Fixes: https://github.com/nodejs/node/issues/4587
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Roman Reiss <me@silverwind.io>
2016-01-11 07:22:14 +01:00
Sequoia McDowell b40aca1cd5 doc: label http.IncomingMessage as a Class
`Server`, `ServerResponse` etc. were marked as classes, this one class
was overlooked.

PR-URL: https://github.com/nodejs/node/pull/4589
Fixes: https://github.com/nodejs/node/issues/4576
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
2016-01-11 07:17:18 +01:00
Sequoia McDowell 9456f5012d doc: document http's server.listen return value
The server method returns `self` in order to allow chaining.

PR-URL: https://github.com/nodejs/node/pull/4590
Fixes: https://github.com/nodejs/node/issues/4571
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
2016-01-11 07:10:01 +01:00
James M Snell adf41b9017 net, doc: fix line wrapping lint in net.js
Missed on the previous review, minor line wrapping nit

PR-URL: https://github.com/nodejs/node/pull/4588
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2016-01-08 10:18:17 -08:00
Josh Dague c64018e1d1 net: fix dns lookup for android
`V4MAPPED` isn't supported by Android either (as of 6.0)

PR-URL: https://github.com/nodejs/node/pull/4580
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2016-01-08 09:11:32 -08:00
Minwoo Jung fde18b24f1 doc: fix description about the latest-codename
fix description about the latest LTS release download page
to make it clear

PR-URL: https://github.com/nodejs/node/pull/4583
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-08 08:36:28 -08:00
Santiago Gimeno f9f1dd9290 cluster: ignore queryServer msgs on disconnection
It avoids the creation of unnecessary handles. This issue is causing
intermitent failures in `test-cluster-disconnect-race` on `FreeBSD`
and `OS X`.

The problem is that the `worker2.disconnect` is being called on the
master before the `queryServer` is handled, causing the worker to
be deleted, then the Server handle is created afterwards. Later on,
when `removeWorker` is called from the `exit` handler, there are no
workers left, but one handle, thus the `AssertionError`.

Add a new `test/sequential/test-cluster-disconnect-leak` based on
`test-cluster-disconnect-race` that creates lots of workers and fails
consistently without this patch.

PR-URL: https://github.com/nodejs/node/pull/4465
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2016-01-07 21:41:10 -08:00