From 5962a5bb2931566897c3c3194f74bee012d168ba Mon Sep 17 00:00:00 2001 From: Sam Bingner Date: Sun, 14 Jul 2019 13:12:19 -1000 Subject: Fix a race condition with jit for node --- data/nodejs/_metadata/libssl1.1.1.dep | 1 + data/nodejs/_metadata/libssl1.1.dep | 1 - data/nodejs/jit.diff | 12 ++++++++---- 3 files changed, 9 insertions(+), 5 deletions(-) create mode 120000 data/nodejs/_metadata/libssl1.1.1.dep delete mode 120000 data/nodejs/_metadata/libssl1.1.dep diff --git a/data/nodejs/_metadata/libssl1.1.1.dep b/data/nodejs/_metadata/libssl1.1.1.dep new file mode 120000 index 000000000..254747b12 --- /dev/null +++ b/data/nodejs/_metadata/libssl1.1.1.dep @@ -0,0 +1 @@ +../../libssl1.1.1 \ No newline at end of file diff --git a/data/nodejs/_metadata/libssl1.1.dep b/data/nodejs/_metadata/libssl1.1.dep deleted file mode 120000 index 71bfa9edd..000000000 --- a/data/nodejs/_metadata/libssl1.1.dep +++ /dev/null @@ -1 +0,0 @@ -../../libssl1.1 \ No newline at end of file diff --git a/data/nodejs/jit.diff b/data/nodejs/jit.diff index c64201e39..5c3d78b97 100644 --- a/data/nodejs/jit.diff +++ b/data/nodejs/jit.diff @@ -14,7 +14,7 @@ diff -ur node-v12.3.1/src/node_main.cc node-v12.3.1+JIT/src/node_main.cc #ifdef _WIN32 #include -@@ -93,6 +99,46 @@ +@@ -93,6 +99,50 @@ } // namespace per_process } // namespace node @@ -28,8 +28,12 @@ diff -ur node-v12.3.1/src/node_main.cc node-v12.3.1+JIT/src/node_main.cc + + pid_t pid = fork(); + if (pid) { -+ int st; -+ waitpid(pid, &st, 0); ++ int st,rv,i=0; ++ do { ++ usleep(500); ++ rv = waitpid(pid, &st, 0); ++ } while (rv<0 && i++<10); ++ if (rv<0) fprintf(stderr, "Unable to wait for child?\n"); + } else if (pid == 0) { + pid_t ppid = getppid(); + int rv = ptrace(PT_ATTACHEXC, ppid, 0, 0); @@ -61,7 +65,7 @@ diff -ur node-v12.3.1/src/node_main.cc node-v12.3.1+JIT/src/node_main.cc int main(int argc, char* argv[]) { #if defined(__POSIX__) && defined(NODE_SHARED_MODE) // In node::PlatformInit(), we squash all signal handlers for non-shared lib -@@ -119,6 +165,9 @@ +@@ -119,6 +168,9 @@ } } #endif -- cgit v1.2.3