diff options
Diffstat (limited to 'user/node/flaky-sigint-test.patch')
-rw-r--r-- | user/node/flaky-sigint-test.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/user/node/flaky-sigint-test.patch b/user/node/flaky-sigint-test.patch new file mode 100644 index 000000000..0ac7a49b1 --- /dev/null +++ b/user/node/flaky-sigint-test.patch @@ -0,0 +1,73 @@ +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'] + }); |