cluster: close ownerless handles on disconnect()
When a worker is disconnecting, it shuts down all of the handles it is waiting on. It is possible that a handle does not have an owner, which causes a crash. This commit closes such handles without accessing the missing owner. Fixes: https://github.com/nodejs/node/issues/6561 PR-URL: https://github.com/nodejs/node/pull/6909 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
This commit is contained in:
parent
dd21bd9f01
commit
aadfe6c249
@ -719,7 +719,11 @@ function workerInit() {
|
|||||||
const handle = handles[key];
|
const handle = handles[key];
|
||||||
delete handles[key];
|
delete handles[key];
|
||||||
waitingCount++;
|
waitingCount++;
|
||||||
|
|
||||||
|
if (handle.owner)
|
||||||
handle.owner.close(checkWaitingCount);
|
handle.owner.close(checkWaitingCount);
|
||||||
|
else
|
||||||
|
handle.close(checkWaitingCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
checkWaitingCount();
|
checkWaitingCount();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user