Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2020-10-03 22:40:12 +0300
committerAnna Henningsen <anna@addaleax.net>2020-10-03 23:46:42 +0300
commitf83f6830437a57bd4460a378b6296bd7cd2e1104 (patch)
treeb77bfab43b6db7e11f0bf19a3097779c16471ba7 /src
parentf5c7aa0c82a41d5d5a5af45f81b9517132bea849 (diff)
src: remove invalid ToLocalChecked in EmitBeforeExit
This call can fail, we should not use `.ToLocalChecked()` here. In the long run, we should use variants of `EmitExit()` and `EmitBeforeExit()` that avoid this problem by properly propagating empty `MaybeLocal`s. Example failure: 21:07:17 not ok 2564 parallel/test-worker-terminate-source-map 21:07:17 --- 21:07:17 duration_ms: 0.385 21:07:17 severity: crashed 21:07:17 exitcode: -6 21:07:17 stack: |- 21:07:17 FATAL ERROR: v8::ToLocalChecked Empty MaybeLocal. 21:07:17 1: 0x1012f04a5 node::Abort() (.cold.1) [/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1015/out/Release/node] 21:07:17 2: 0x1000b52d9 node::Abort() [/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1015/out/Release/node] 21:07:17 3: 0x1000b543f node::OnFatalError(char const*, char const*) [/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1015/out/Release/node] 21:07:17 4: 0x1001ffd70 v8::V8::ToLocalEmpty() [/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1015/out/Release/node] 21:07:17 5: 0x1000079b8 node::EmitBeforeExit(node::Environment*) [/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1015/out/Release/node] 21:07:17 6: 0x100156fea node::worker::Worker::Run() [/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1015/out/Release/node] 21:07:17 7: 0x10015a4d2 node::worker::Worker::StartThread(v8::FunctionCallbackInfo<v8::Value> const&)::$_3::__invoke(void*) [/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1015/out/Release/node] 21:07:17 8: 0x7fff72fe7109 _pthread_start [/usr/lib/system/libsystem_pthread.dylib] 21:07:17 9: 0x7fff72fe2b8b thread_start [/usr/lib/system/libsystem_pthread.dylib] 21:07:17 ... PR-URL: https://github.com/nodejs/node/pull/35484 Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Diffstat (limited to 'src')
-rw-r--r--src/api/hooks.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/api/hooks.cc b/src/api/hooks.cc
index e1536193f95..a719a861dbe 100644
--- a/src/api/hooks.cc
+++ b/src/api/hooks.cc
@@ -45,7 +45,9 @@ void EmitBeforeExit(Environment* env) {
Local<Integer> exit_code;
if (!exit_code_v->ToInteger(env->context()).ToLocal(&exit_code)) return;
- ProcessEmit(env, "beforeExit", exit_code).ToLocalChecked();
+ // TODO(addaleax): Provide variants of EmitExit() and EmitBeforeExit() that
+ // actually forward empty MaybeLocal<>s (and check env->can_call_into_js()).
+ USE(ProcessEmit(env, "beforeExit", exit_code));
}
int EmitExit(Environment* env) {