summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/internal/cluster/master.js5
-rw-r--r--test/parallel/test-inspect-support-for-node_options.js30
2 files changed, 34 insertions, 1 deletions
diff --git a/lib/internal/cluster/master.js b/lib/internal/cluster/master.js
index 7ee43689c4..8e4f9395da 100644
--- a/lib/internal/cluster/master.js
+++ b/lib/internal/cluster/master.js
@@ -103,11 +103,14 @@ function createWorkerProcess(id, env) {
const workerEnv = util._extend({}, process.env);
const execArgv = cluster.settings.execArgv.slice();
const debugArgRegex = /--inspect(?:-brk|-port)?|--debug-port/;
+ const nodeOptions = process.env.NODE_OPTIONS ?
+ process.env.NODE_OPTIONS : '';
util._extend(workerEnv, env);
workerEnv.NODE_UNIQUE_ID = '' + id;
- if (execArgv.some((arg) => arg.match(debugArgRegex))) {
+ if (execArgv.some((arg) => arg.match(debugArgRegex)) ||
+ nodeOptions.match(debugArgRegex)) {
let inspectPort;
if ('inspectPort' in cluster.settings) {
if (typeof cluster.settings.inspectPort === 'function')
diff --git a/test/parallel/test-inspect-support-for-node_options.js b/test/parallel/test-inspect-support-for-node_options.js
new file mode 100644
index 0000000000..05c7ec24b9
--- /dev/null
+++ b/test/parallel/test-inspect-support-for-node_options.js
@@ -0,0 +1,30 @@
+'use strict';
+const common = require('../common');
+const cluster = require('cluster');
+const assert = require('assert');
+
+common.skipIfInspectorDisabled();
+
+checkForInspectSupport('--inspect');
+
+function checkForInspectSupport(flag) {
+
+ const nodeOptions = JSON.stringify(flag);
+ const numWorkers = 2;
+ process.env.NODE_OPTIONS = flag;
+
+ if (cluster.isMaster) {
+ for (let i = 0; i < numWorkers; i++) {
+ cluster.fork();
+ }
+
+ cluster.on('online', (worker) => {
+ worker.disconnect();
+ });
+
+ cluster.on('exit', common.mustCall((worker, code, signal) => {
+ const errMsg = `For NODE_OPTIONS ${nodeOptions}, failed to start cluster`;
+ assert.strictEqual(worker.exitedAfterDisconnect, true, errMsg);
+ }, numWorkers));
+ }
+}