You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
deps: uv: restore prior signal disposition on Android (DCP-4748)
On Android, ART claims SIGSEGV/SIGBUS/SIGFPE/SIGILL/SIGTRAP/SIGABRT for
implicit null-checks and stack-overflow detection, routed through
libsigchain. libuv's uv__signal_unregister_handler() resets a signal to
SIG_DFL once its last watcher is removed; on Android that clobbers ART's
handler and emits an ERROR-level libsigchain stack trace on every embedded
node::FreeEnvironment() (DCP-4748).
Gated to __ANDROID__: uv__signal_register_handler() captures the previous
disposition on the no-handler -> handler transition and
uv__signal_unregister_handler() restores it instead of forcing SIG_DFL.
bionic round-trips the sigaction flags correctly, so this is safe; it is
deliberately NOT applied to other platforms (notably macOS, which drops
SA_RESETHAND in the old action -- see upstream libuv nodejs#4299, which caused
PR nodejs#4216 to be reverted). Off Android the code path and behaviour are
unchanged. The saved table is accessed only under the global signal lock.
0 commit comments