test: fix debug-signal-cluster after da update
The cluster children are hitting breakpoint at `cluster.onread` and hanging on a Semaphore wait now. This prevents them from disconnecting gracefully. Considering that the test is checking different thing, the cluster children needs to be force killed from the grand parent process. Reviewed-By: Trevor Norris <trevnorris@gmail.com> PR-URL: https://github.com/joyent/node/pull/8476
This commit is contained in:
parent
383b0c0afb
commit
25e8adefa3
10
test/fixtures/clustered-server/app.js
vendored
10
test/fixtures/clustered-server/app.js
vendored
@ -16,6 +16,16 @@ if (cluster.isMaster) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
process.on('message', function(msg) {
|
||||||
|
if (msg.type === 'getpids') {
|
||||||
|
var pids = [];
|
||||||
|
pids.push(process.pid);
|
||||||
|
for (var key in cluster.workers)
|
||||||
|
pids.push(cluster.workers[key].process.pid);
|
||||||
|
process.send({ type: 'pids', pids: pids });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
for (var i = 0; i < NUMBER_OF_WORKERS; i++) {
|
for (var i = 0; i < NUMBER_OF_WORKERS; i++) {
|
||||||
cluster.fork();
|
cluster.fork();
|
||||||
}
|
}
|
||||||
|
@ -24,11 +24,15 @@ var assert = require('assert');
|
|||||||
var spawn = require('child_process').spawn;
|
var spawn = require('child_process').spawn;
|
||||||
|
|
||||||
var args = [ common.fixturesDir + '/clustered-server/app.js' ];
|
var args = [ common.fixturesDir + '/clustered-server/app.js' ];
|
||||||
var child = spawn(process.execPath, args);
|
var child = spawn(process.execPath, args, {
|
||||||
|
stdio: [ 'pipe', 'pipe', 'pipe', 'ipc' ]
|
||||||
|
});
|
||||||
var outputLines = [];
|
var outputLines = [];
|
||||||
var outputTimerId;
|
var outputTimerId;
|
||||||
var waitingForDebuggers = false;
|
var waitingForDebuggers = false;
|
||||||
|
|
||||||
|
var pids = null;
|
||||||
|
|
||||||
child.stderr.on('data', function(data) {
|
child.stderr.on('data', function(data) {
|
||||||
var lines = data.toString().replace(/\r/g, '').trim().split('\n');
|
var lines = data.toString().replace(/\r/g, '').trim().split('\n');
|
||||||
var line = lines[0];
|
var line = lines[0];
|
||||||
@ -42,8 +46,20 @@ child.stderr.on('data', function(data) {
|
|||||||
outputLines = outputLines.concat(lines);
|
outputLines = outputLines.concat(lines);
|
||||||
outputTimerId = setTimeout(onNoMoreLines, 800);
|
outputTimerId = setTimeout(onNoMoreLines, 800);
|
||||||
} else if (line === 'all workers are running') {
|
} else if (line === 'all workers are running') {
|
||||||
|
child.on('message', function(msg) {
|
||||||
|
if (msg.type !== 'pids')
|
||||||
|
return;
|
||||||
|
|
||||||
|
pids = msg.pids;
|
||||||
|
console.error('got pids %j', pids);
|
||||||
|
|
||||||
waitingForDebuggers = true;
|
waitingForDebuggers = true;
|
||||||
process._debugProcess(child.pid);
|
process._debugProcess(child.pid);
|
||||||
|
});
|
||||||
|
|
||||||
|
child.send({
|
||||||
|
type: 'getpids'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -57,7 +73,9 @@ setTimeout(function testTimedOut() {
|
|||||||
}, 6000);
|
}, 6000);
|
||||||
|
|
||||||
process.on('exit', function onExit() {
|
process.on('exit', function onExit() {
|
||||||
child.kill();
|
pids.forEach(function(pid) {
|
||||||
|
process.kill(pid);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function assertOutputLines() {
|
function assertOutputLines() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user