-
Notifications
You must be signed in to change notification settings - Fork 30.1k
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
cluster: disconnect event was not emitted correctly #1386
Conversation
@@ -8,6 +10,11 @@ if (cluster.isWorker) { | |||
|
|||
}).listen(common.PORT, '127.0.0.1'); | |||
|
|||
// Save flag-file on disconnect | |||
cluster.worker.on('disconnect', function(){ | |||
fs.writeFileSync(path.join(__dirname, process.pid + ''), ''); |
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.
Instead of doing this, can you check out test/parallel/test-cluster-worker-death.js
, and do something similar.
EDIT: Upon further review, that approach might not work. @bnoordhuis any better ideas on how to trigger an assertion in the parent process after a disconnect in the child?
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.
Instead of creating files in __dirname
, can you use common.tmpDir
.
@cjihrig done |
@@ -8,6 +8,10 @@ if (cluster.isWorker) { | |||
|
|||
}).listen(common.PORT, '127.0.0.1'); | |||
|
|||
cluster.worker.on('disconnect', function(){ |
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.
Please add a space between )
and {
One style nit. Can you address it and squash the commits. Then, I'll run it through the CI. |
Fix for nodejs#1304 Inside of a worker, disconnect event was not emitted on cluster.worker
fd21b92
to
ded311c
Compare
@cjihrig done |
CI looks good. I'll merge this in the coming days, assuming there is no more activity. |
@brendanashworth do I need to rewrite my PR to master branch? |
No, it'll be merged manually into master anyways. |
Thanks, landed in 5883a59. |
PR-URL: nodejs#1679 Notable Changes: * win,node-gyp: the delay-load hook for windows addons has now been correctly enabled by default, it had wrongly defaulted to off in the release version of 2.0.0 (Bert Belder) nodejs#1433 * os: tmpdir()'s trailing slash stripping has been refined to fix an issue when the temp directory is at '/'. Also considers which slash is used by the operating system. (cjihrig) nodejs#1673 * tls: default ciphers have been updated to use gcm and aes128 (Mike MacCana) nodejs#1660 * build: v8 snapshots have been re-enabled by default as suggested by the v8 team, since prior security issues have been resolved. This should give some perf improvements to both startup and vm context creation. (Trevor Norris) nodejs#1663 * src: fixed preload modules not working when other flags were used before --require (Yosuke Furukawa) nodejs#1694 * dgram: fixed send()'s callback not being asynchronous (Yosuke Furukawa) nodejs#1313 * readline: emitKeys now keeps buffering data until it has enough to parse. This fixes an issue with parsing split escapes. (Alex Kocharin) * cluster: works now properly emit 'disconnect' to cluser.worker (Oleg Elifantiev) nodejs#1386 events: uncaught errors now provide some context (Evan Lucas) nodejs#1654
Inside of a worker, disconnect event was not emitted on cluster.worker Fixes: nodejs#1304 PR-URL: nodejs#1386 Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Fix for #1304
Inside of a worker, disconnect event was not emitted on cluster.worker