From 80ade7f46f3cd6b969153dbfc34c451fc624bdc6 Mon Sep 17 00:00:00 2001
From: Rich Trott <rtrott@gmail.com>
Date: Sun, 6 Nov 2022 22:41:28 -0800
Subject: [PATCH 1/2] test: fix flaky test-repl-sigint-nested-eval
There is a race condition where process.kill can be sent before the
target is ready to receive the signal.
Fixes: https://github.com/nodejs/node/issues/41123
---
test/parallel/test-repl-sigint-nested-eval.js | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/test/parallel/test-repl-sigint-nested-eval.js b/test/parallel/test-repl-sigint-nested-eval.js
index 28e4d44b235c..5830e08629b9 100644
--- a/test/parallel/test-repl-sigint-nested-eval.js
+++ b/test/parallel/test-repl-sigint-nested-eval.js
@@ -12,7 +12,7 @@ const spawn = require('child_process').spawn;
process.env.REPL_TEST_PPID = process.pid;
const child = spawn(process.execPath, [ '-i' ], {
- stdio: [null, null, 2]
+ stdio: [null, null, 2, 'ipc']
});
let stdout = '';
@@ -22,7 +22,8 @@ child.stdout.on('data', function(c) {
});
child.stdout.once('data', common.mustCall(() => {
- process.on('SIGUSR2', common.mustCall(() => {
+ child.on('message', common.mustCall((msg) => {
+ assert.strictEqual(msg, 'repl is busy');
process.kill(child.pid, 'SIGINT');
child.stdout.once('data', common.mustCall(() => {
// Make sure REPL still works.
@@ -30,9 +31,10 @@ child.stdout.once('data', common.mustCall(() => {
}));
}));
- child.stdin.write('process.kill(+process.env.REPL_TEST_PPID, "SIGUSR2");' +
- 'vm.runInThisContext("while(true){}", ' +
- '{ breakOnSigint: true });\n');
+ child.stdin.write(
+ 'vm.runInThisContext("process.send(\'repl is busy\'); while(true){}", ' +
+ '{ breakOnSigint: true });\n'
+ );
}));
child.on('close', function(code) {
From 2d9cf095d12420ef825e9ba83deb46426561ddbb Mon Sep 17 00:00:00 2001
From: Rich Trott <rtrott@gmail.com>
Date: Thu, 10 Nov 2022 09:00:55 -0800
Subject: [PATCH 2/2] Update test/parallel/test-repl-sigint-nested-eval.js
Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
---
test/parallel/test-repl-sigint-nested-eval.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/test/parallel/test-repl-sigint-nested-eval.js b/test/parallel/test-repl-sigint-nested-eval.js
index 5830e08629b9..62eb46e0af67 100644
--- a/test/parallel/test-repl-sigint-nested-eval.js
+++ b/test/parallel/test-repl-sigint-nested-eval.js
@@ -10,7 +10,6 @@ if (!common.isMainThread)
const assert = require('assert');
const spawn = require('child_process').spawn;
-process.env.REPL_TEST_PPID = process.pid;
const child = spawn(process.execPath, [ '-i' ], {
stdio: [null, null, 2, 'ipc']
});