Skip to content

Commit

Permalink
lib: make --debug-port work with cluster
Browse files Browse the repository at this point in the history
Make the cluster module intercept the `--debug-port=<port>` command line
switch and replace it with the debug port of the child process.

A happy coincidence of this change is that it finally makes it possible
to run the sequential/test-debug-signal-cluster in parallel, it now no
longer needs the default port numbers.

PR-URL: #306
Reviewed-By: Miroslav Bajtoš <miroslav@strongloop.com>
  • Loading branch information
bnoordhuis committed Jan 12, 2015
1 parent 5ec5fd8 commit 11c1bae
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
2 changes: 1 addition & 1 deletion lib/cluster.js
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ function masterInit() {
workerEnv.NODE_UNIQUE_ID = '' + id;

for (var i = 0; i < execArgv.length; i++) {
var match = execArgv[i].match(/^(--debug|--debug-brk)(=\d+)?$/);
var match = execArgv[i].match(/^(--debug|--debug-(brk|port))(=\d+)?$/);

if (match) {
execArgv[i] = match[1] + '=' + debugPort;
Expand Down
16 changes: 9 additions & 7 deletions test/sequential/test-debug-signal-cluster.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,12 @@ var common = require('../common');
var assert = require('assert');
var spawn = require('child_process').spawn;

var args = [ common.fixturesDir + '/clustered-server/app.js' ];
var child = spawn(process.execPath, args, {
stdio: [ 'pipe', 'pipe', 'pipe', 'ipc' ]
});
var port = common.PORT + 42;
var args = ['--debug-port=' + port,
common.fixturesDir + '/clustered-server/app.js'];
var options = { stdio: ['inherit', 'inherit', 'pipe', 'ipc'] };
var child = spawn(process.execPath, args, options);

var outputLines = [];
var outputTimerId;
var waitingForDebuggers = false;
Expand Down Expand Up @@ -83,11 +85,11 @@ process.on('exit', function onExit() {
function assertOutputLines() {
var expectedLines = [
'Starting debugger agent.',
'Debugger listening on port ' + 5858,
'Debugger listening on port ' + (port + 0),
'Starting debugger agent.',
'Debugger listening on port ' + 5859,
'Debugger listening on port ' + (port + 1),
'Starting debugger agent.',
'Debugger listening on port ' + 5860,
'Debugger listening on port ' + (port + 2),
];

// Do not assume any particular order of output messages,
Expand Down

0 comments on commit 11c1bae

Please sign in to comment.