653d0f009e
* chore: bump node in DEPS to v20.13.0 * crypto: enable NODE_EXTRA_CA_CERTS with BoringSSL https://github.com/nodejs/node/pull/52217 * test: skip test for dynamically linked OpenSSL https://github.com/nodejs/node/pull/52542 * lib, url: add a `windows` option to path parsing https://github.com/nodejs/node/pull/52509 * src: use dedicated routine to compile function for builtin CJS loader https://github.com/nodejs/node/pull/52016 * test: mark test as flaky https://github.com/nodejs/node/pull/52671 * build,tools: add test-ubsan ci https://github.com/nodejs/node/pull/46297 * src: preload function for Environment https://github.com/nodejs/node/pull/51539 * chore: fixup patch indices * deps: update c-ares to 1.28.1 https://github.com/nodejs/node/pull/52285 * chore: handle updated filenames - https://github.com/nodejs/node/pull/51999 - https://github.com/nodejs/node/pull/51927 * chore: bump node in DEPS to v20.13.1 * events: extract addAbortListener for safe internal use https://github.com/nodejs/node/pull/52081 * module: print location of unsettled top-level await in entry points https://github.com/nodejs/node/pull/51999 * fs: add stacktrace to fs/promises https://github.com/nodejs/node/pull/49849 * chore: update patches --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
51 lines
2.1 KiB
Diff
51 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: VerteDinde <keeleymhammond@gmail.com>
|
|
Date: Sun, 20 Nov 2022 21:45:20 -0800
|
|
Subject: fix: enable crashpad for ELECTRON_RUN_AS_NODE linux processes
|
|
|
|
Passes the crashpad handler PID and crashdump signal file descriptor
|
|
to child processes spawned with `ELECTRON_RUN_AS_NODE` which is used
|
|
by the crashpad client to connect with the handler process.
|
|
|
|
diff --git a/lib/child_process.js b/lib/child_process.js
|
|
index c09fca512584ce2c674ae1d05136ff4cd8ea8471..3947e231f4e641b97d12c9639a736fab8836787b 100644
|
|
--- a/lib/child_process.js
|
|
+++ b/lib/child_process.js
|
|
@@ -61,6 +61,7 @@ let debug = require('internal/util/debuglog').debuglog(
|
|
);
|
|
const { Buffer } = require('buffer');
|
|
const { Pipe, constants: PipeConstants } = internalBinding('pipe_wrap');
|
|
+const { getCrashdumpSignalFD, getCrashpadHandlerPID } = process._linkedBinding('electron_common_crashpad_support');
|
|
|
|
const {
|
|
AbortError,
|
|
@@ -154,7 +155,6 @@ function fork(modulePath, args = [], options) {
|
|
ArrayPrototypeSplice(execArgv, index - 1, 2);
|
|
}
|
|
}
|
|
-
|
|
args = [...execArgv, modulePath, ...args];
|
|
|
|
if (typeof options.stdio === 'string') {
|
|
@@ -617,6 +617,21 @@ function normalizeSpawnArguments(file, args, options) {
|
|
'options.windowsVerbatimArguments');
|
|
}
|
|
|
|
+ if (process.platform === 'linux') {
|
|
+ if (ObjectPrototypeHasOwnProperty(options.env || process.env, 'ELECTRON_RUN_AS_NODE') &&
|
|
+ (file === process.execPath)) {
|
|
+ // On Linux, pass the file descriptor which crashpad handler process
|
|
+ // uses to monitor the child process and PID of the handler process.
|
|
+ // https://source.chromium.org/chromium/chromium/src/+/110.0.5415.0:components/crash/core/app/crashpad_linux.cc;l=199-206
|
|
+ const fd = getCrashdumpSignalFD();
|
|
+ const pid = getCrashpadHandlerPID();
|
|
+ if (fd !== -1 && pid !== -1) {
|
|
+ options.env.CRASHDUMP_SIGNAL_FD = fd;
|
|
+ options.env.CRASHPAD_HANDLER_PID = pid;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
if (options.shell) {
|
|
validateArgumentNullCheck(options.shell, 'options.shell');
|
|
const command = ArrayPrototypeJoin([file, ...args], ' ');
|