fix: exit(0)
causes ANR due to destroyed mutex
#1820
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When initializing the runtime in direct boot mode the
exit(0)
IO cleanup causes aSIGABRT
with the following message:This
SIGABRT
is caught by theSIG_handler
which in turn throws atsn::NativeScriptException
. I'm not exactly sure what catches thisNativeScriptException
, but whatever it is either deadlocks or keeps re-throwing it until the device runs out of memory.android/test-app/runtime/src/main/cpp/Runtime.cpp
Lines 49 to 66 in ba50f03
This bug shows up as an ANR (App not responding) in Crashlytics and Google Play console (as reported in NativeScript/NativeScript#10527).
The same issue was reported on flutter/flutter#103587, which leads me to believe this is not specific to Nativescript's runtime.
My proposed solution is to use
_Exit(0)
instead, which doesn't trigger any cleanup process and simply ends the process.Full error below:
Related Pull Requests
#1712
NativeScript/plugins#262
NativeScript/NativeScript#10527
Does your pull request have unit tests?