summaryrefslogtreecommitdiff
path: root/user/node/flaky-sigint-test.patch
diff options
context:
space:
mode:
Diffstat (limited to 'user/node/flaky-sigint-test.patch')
-rw-r--r--user/node/flaky-sigint-test.patch73
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']
+ });