Skip to content

Commit 4cd522d

Browse files
rmgtrevnorris
authored andcommitted
cluster: restore v0.10.x setupMaster() behaviour
In v0.10.x, process.argv and process.execArgv would only be evaluated and copied into cluster.settings on the first call to cluster.setupMaster() (either directly or via cluster.fork()), allowing them to be modified as needed before initializing the settings. In 41b75ca the behaviour was changed so that these values are initialized at the time of the first require('cluster'). Fixes #7670. Signed-off-by: Trevor Norris <trev.norris@gmail.com>
1 parent 61770f2 commit 4cd522d

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

lib/cluster.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -214,13 +214,7 @@ function masterInit() {
214214
cluster.workers = {};
215215

216216
var intercom = new EventEmitter;
217-
var settings = {
218-
args: process.argv.slice(2),
219-
exec: process.argv[1],
220-
execArgv: process.execArgv,
221-
silent: false
222-
};
223-
cluster.settings = settings;
217+
cluster.settings = {};
224218

225219
// XXX(bnoordhuis) Fold cluster.schedulingPolicy into cluster.settings?
226220
var schedulingPolicy = {
@@ -247,6 +241,12 @@ function masterInit() {
247241
cluster.setupMaster = function(options) {
248242
if (initialized === true) return;
249243
initialized = true;
244+
var settings = {
245+
args: process.argv.slice(2),
246+
exec: process.argv[1],
247+
execArgv: process.execArgv,
248+
silent: false
249+
};
250250
settings = util._extend(settings, options || {});
251251
// Tell V8 to write profile data for each process to a separate file.
252252
// Without --logfile=v8-%p.log, everything ends up in a single, unusable
@@ -282,10 +282,10 @@ function masterInit() {
282282
var workerEnv = util._extend({}, process.env);
283283
workerEnv = util._extend(workerEnv, env);
284284
workerEnv.NODE_UNIQUE_ID = '' + worker.id;
285-
worker.process = fork(settings.exec, settings.args, {
285+
worker.process = fork(cluster.settings.exec, cluster.settings.args, {
286286
env: workerEnv,
287-
silent: settings.silent,
288-
execArgv: createWorkerExecArgv(settings.execArgv, worker)
287+
silent: cluster.settings.silent,
288+
execArgv: createWorkerExecArgv(cluster.settings.execArgv, worker)
289289
});
290290
worker.process.once('exit', function(exitCode, signalCode) {
291291
worker.suicide = !!worker.suicide;

0 commit comments

Comments
 (0)