Master was disconnecting its workers as soon as they both started up.
Meanwhile, the workers were trying to listen. Its a race, sometimes the
disconnect would happen between when worker gets the response message,
and acks that message with a 'listening'. This worked OK after v0.11
introduced a behaviour where disconnect would always exit the worker,
but once that backwards-incompatible behaviour is removed, the worker
lives long enough to try and respond to the master, and child_process
errors at the attempt to send from a disconnected child.
cluster.on('online', function() {
if (++workersOnline === NUMBER_OF_WORKERS) {
console.error('all workers are running');
- for (var key in cluster.workers) {
- cluster.workers[key].disconnect();
- }
}
});
if (line === 'all workers are running') {
assertOutputLines();
+ process.exit();
} else {
outputLines = outputLines.concat(lines);
}
});
+process.on('exit', function onExit() {
+ child.kill();
+});
+
var assertOutputLines = common.mustCall(function() {
var expectedLines = [
'Debugger listening on port ' + 5858,
if (line === 'all workers are running') {
assertOutputLines();
+ process.exit();
} else {
outputLines = outputLines.concat(lines);
}
});
+process.on('exit', function onExit() {
+ child.kill();
+});
+
var assertOutputLines = common.mustCall(function() {
var expectedLines = [
'Debugger listening on port ' + port,