hermes: SIGSEGV hermesFatalErrorHandler -- Out of Memory (OOM)

Bug Description

We are getting a lot of crash reports in Google Play/Bugsnag and I’m having a hard time finding out what could be the next step. The app is crashing for almost all Android versions, not specifically at startup. This is happening with Hermes 0.4 & 0.5.1. Our app is open-source https://github.com/standardnotes/mobile. Is there anything more I could provide? Unfortunately I have not been able to reproduce this locally yet, and neither Google Play/Bugsnag provide a more extensive stack trace.

Hermes version: 0.5.1 React Native version (if any): 0.63.4 Android version (if any): all Platform (most likely one of arm64-v8a, armeabi-v7a, x86, x86_64):

SIGSEGV Segmentation violation (invalid memory reference) 
    /data/data/com.standardnotes/lib-0/libhermes.so:176776 facebook::hermes::detail::hermesFatalErrorHandler(void*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, bool)
    /data/data/com.standardnotes/lib-0/libhermes.so:1655004 0x71ac7700dc
    /data/data/com.standardnotes/lib-0/libhermes.so:1654740 0x71ac76ffd4
    /data/data/com.standardnotes/lib-0/libhermes.so:1484528 0x71ac7466f0
    /data/data/com.standardnotes/lib-0/libhermes.so:269892 0x71ac61de44
    /data/data/com.standardnotes/lib-0/libhermes.so:889856 0x71ac6b5400
    /data/data/com.standardnotes/lib-0/libhermes.so:306720 0x71ac626e20
    /data/data/com.standardnotes/lib-0/libhermes.so:298656 0x71ac624ea0
    /data/data/com.standardnotes/lib-0/libhermes.so:381220 0x71ac639124
    /data/data/com.standardnotes/lib-0/libhermes.so:374368 0x71ac637660
    /data/data/com.standardnotes/lib-0/libhermes.so:370272 0x71ac636660
    /data/data/com.standardnotes/lib-0/libhermes.so:334812 0x71ac62dbdc
    /data/data/com.standardnotes/lib-0/libhermes.so:321856 0x71ac62a940
    /data/data/com.standardnotes/lib-0/libhermes.so:785844 0x71ac69bdb4
    /data/data/com.standardnotes/lib-0/libhermes.so:257968 0x71ac61afb0
    /data/data/com.standardnotes/lib-0/libhermes.so:317940 0x71ac6299f4
    /data/data/com.standardnotes/lib-0/libhermes.so:331320 0x71ac62ce38
    /data/data/com.standardnotes/lib-0/libhermes.so:321856 0x71ac62a940
    /data/data/com.standardnotes/lib-0/libhermes.so:785844 0x71ac69bdb4
    /data/data/com.standardnotes/lib-0/libhermes.so:257968 0x71ac61afb0
    /data/data/com.standardnotes/lib-0/libhermes.so:317940 0x71ac6299f4
    /data/data/com.standardnotes/lib-0/libhermes.so:331320 0x71ac62ce38
    /data/data/com.standardnotes/lib-0/libhermes.so:321856 0x71ac62a940
    /data/data/com.standardnotes/lib-0/libhermes.so:253484 0x71ac619e2c
    /data/data/com.standardnotes/lib-0/libhermes.so:785252 0x71ac69bb64
    /data/data/com.standardnotes/lib-0/libhermes.so:257968 0x71ac61afb0
    /data/data/com.standardnotes/lib-0/libhermes.so:317940 0x71ac6299f4
    /data/data/com.standardnotes/lib-0/libhermes.so:331320 0x71ac62ce38
    /data/data/com.standardnotes/lib-0/libhermes.so:321856 0x71ac62a940
    /data/data/com.standardnotes/lib-0/libhermes.so:256784 0x71ac61ab10
    /data/data/com.standardnotes/lib-0/libhermes.so:317964 0x71ac629a0c
    /data/data/com.standardnotes/lib-0/libhermes.so:331320 0x71ac62ce38
    /data/data/com.standardnotes/lib-0/libhermes.so:321856 0x71ac62a940
    /data/data/com.standardnotes/lib-0/libhermes.so:256784 0x71ac61ab10
    /data/data/com.standardnotes/lib-0/libhermes.so:192780 facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)
    /data/data/com.standardnotes/lib-0/libhermes-executor-release.so:161796 facebook::jsi::Value facebook::jsi::Function::call<double const&, facebook::jsi::Value>(facebook::jsi::Runtime&, double const&, facebook::jsi::Value&&) const
    /data/data/com.standardnotes/lib-0/libhermes-executor-release.so:161340 facebook::react::JSIExecutor::invokeCallback(double, folly::dynamic const&)
    /data/data/com.standardnotes/lib-0/libreactnativejni.so:660340 0x71aeb22374
    /data/data/com.standardnotes/lib-0/libreactnativejni.so:664404 0x71aeb23354
    /data/data/com.standardnotes/lib-0/libreactnativejni.so:429388 0x71aeae9d4c
    /data/data/com.standardnotes/lib-0/libreactnativejni.so:367220 facebook::jni::detail::MethodWrapper<void (facebook::react::JNativeRunnable::*)(), &facebook::react::JNativeRunnable::run, facebook::react::JNativeRunnable, void>::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*>)
    /data/data/com.standardnotes/lib-0/libreactnativejni.so:367088 
    unknown 0x3850766e45494e4a

I also tried to symbolicate it using the unstripped libraries:

********** Crash dump: **********
#00 0x000000000001f8c0 /data/data/com.standardnotes/lib-0/libhermes.so (facebook::hermes::detail::hermesFatalErrorHandler(void*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>> const&, bool)+28)
                                                                        ??
                                                                        ??:0:0
#00 0x0000000000140ff4 /data/data/com.standardnotes/lib-0/libhermes.so
std::__ndk1::enable_if<((is_trivially_move_constructible<hermes::BasicBlock*>::value) && (is_same<hermes::BasicBlock*, hermes::BasicBlock*>::value)) && ((std::__ndk1::integral_constant<bool, true>::value) || (!(__has_construct<std::__ndk1::allocator<hermes::BasicBlock*>, hermes::BasicBlock**, bool&>::value))), void>::type std::__ndk1::allocator_traits<std::__ndk1::allocator<hermes::BasicBlock*> >::__construct_range_forward<hermes::BasicBlock* const, hermes::BasicBlock*, hermes::BasicBlock*, hermes::BasicBlock*>(std::__ndk1::allocator<hermes::BasicBlock*>&, bool*, bool*, hermes::BasicBlock**&)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:1668:26
std::__ndk1::enable_if<__is_forward_iterator<hermes::BasicBlock* const*>::value, void>::type std::__ndk1::vector<hermes::BasicBlock*, std::__ndk1::allocator<hermes::BasicBlock*> >::__construct_at_end<hermes::BasicBlock* const*>(hermes::BasicBlock* const*, hermes::BasicBlock* const*, unsigned long)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/vector:1070:0
std::__ndk1::enable_if<(__is_forward_iterator<hermes::BasicBlock* const*>::value) && (is_constructible<hermes::BasicBlock*, std::__ndk1::iterator_traits<hermes::BasicBlock* const*>::reference>::value), void>::type std::__ndk1::vector<hermes::BasicBlock*, std::__ndk1::allocator<hermes::BasicBlock*> >::assign<hermes::BasicBlock* const*>(hermes::BasicBlock* const*, hermes::BasicBlock* const*)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/vector:1455:0
#00 0x0000000000140ef4 /data/data/com.standardnotes/lib-0/libhermes.so
std::__ndk1::enable_if<(__is_forward_iterator<hermes::BasicBlock* const*>::value) && (is_constructible<hermes::BasicBlock*, std::__ndk1::iterator_traits<hermes::BasicBlock* const*>::reference>::value), void>::type std::__ndk1::vector<hermes::BasicBlock*, std::__ndk1::allocator<hermes::BasicBlock*> >::assign<hermes::BasicBlock* const*>(hermes::BasicBlock* const*, hermes::BasicBlock* const*)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/vector:1433:0
#00 0x000000000011dbf4 /data/data/com.standardnotes/lib-0/libhermes.so
llvm::DenseMapBase<llvm::DenseMap<hermes::Value*, hermes::MovInst*, llvm::DenseMapInfo<hermes::Value*>, llvm::detail::DenseMapPair<hermes::Value*, hermes::MovInst*> >, hermes::Value*, hermes::MovInst*, llvm::DenseMapInfo<hermes::Value*>, llvm::detail::DenseMapPair<hermes::Value*, hermes::MovInst*> >::FindAndConstruct(hermes::Value* const&)
/home/circleci/project/external/llvh/include/llvm/ADT/DenseMap.h:0:5
#00 0x0000000000036300 /data/data/com.standardnotes/lib-0/libhermes.so
std::__ndk1::vector<std::__ndk1::function<void (hermes::vm::GenGC*, hermes::vm::SlotAcceptor&)>, std::__ndk1::allocator<std::__ndk1::function<void (hermes::vm::GenGC*, hermes::vm::SlotAcceptor&)> > >::__swap_out_circular_buffer(std::__ndk1::__split_buffer<std::__ndk1::function<void (hermes::vm::GenGC*, hermes::vm::SlotAcceptor&)>, std::__ndk1::allocator<std::__ndk1::function<void (hermes::vm::GenGC*, hermes::vm::SlotAcceptor&)> >&>&)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/vector:936:0
#00 0x00000000000bc9f8 /data/data/com.standardnotes/lib-0/libhermes.so
hermes::vm::stringPrototypeReplace(void*, hermes::vm::Runtime*, hermes::vm::NativeArgs)
/home/circleci/project/lib/VM/JSLib/String.cpp:1706:72
#00 0x000000000003a864 /data/data/com.standardnotes/lib-0/libhermes.so
facebook::jsi::Value::asSymbol(facebook::jsi::Runtime&) &&
/home/circleci/project/API/jsi/jsi/jsi.cpp:0:5
#00 0x000000000003b8b8 /data/data/com.standardnotes/lib-0/libhermes.so
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::__set_short_size(unsigned long)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:1471:35
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::clear()
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:3082:0
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::__clear_and_shrink()
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:3831:0
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::__move_assign(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >&, std::__ndk1::integral_constant<bool, true>)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:2303:0
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::operator=(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >&&)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:2315:0
facebook::jsi::JSError::setValue(facebook::jsi::Runtime&, facebook::jsi::Value&&)
/home/circleci/project/API/jsi/jsi/jsi.cpp:444:0
#00 0x000000000004d604 /data/data/com.standardnotes/lib-0/libhermes.so
hermes::vm::Interpreter::getArgumentsPropByValSlowPath_RJS(hermes::vm::Runtime*, hermes::vm::PinnedHermesValue*, hermes::vm::PinnedHermesValue*, hermes::vm::Handle<hermes::vm::Callable>, bool)
/home/circleci/project/lib/VM/Interpreter.cpp:213:0
#00 0x000000000004d374 /data/data/com.standardnotes/lib-0/libhermes.so
hermes::vm::Interpreter::createGenerator_RJS(hermes::vm::Runtime*, hermes::vm::RuntimeModule*, unsigned int, hermes::vm::Handle<hermes::vm::Environment>, hermes::vm::NativeArgs)
/home/circleci/project/lib/VM/Interpreter.cpp:159:7
#00 0x000000000004c838 /data/data/com.standardnotes/lib-0/libhermes.so
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::__is_long() const
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:1427:39
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::__get_pointer() const
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:1521:0
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::data() const
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:1249:0
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::operator[](unsigned long) const
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:3208:0
hermes::vm::ExternalStringPrimitive<char>::getRawPointer() const
/home/circleci/project/include/hermes/VM/StringPrimitive.h:588:0
hermes::vm::BufferedStringPrimitive<char>::getRawPointer() const
/home/circleci/project/include/hermes/VM/StringPrimitive.h:745:0
hermes::vm::StringPrimitive::castToASCIIPointer() const
/home/circleci/project/include/hermes/VM/StringPrimitive.h:994:0
hermes::vm::StringPrimitive::castToASCIIRef(unsigned int, unsigned int) const
/home/circleci/project/include/hermes/VM/StringPrimitive.h:324:0
hermes::vm::StringPrimitive::castToASCIIRef() const
/home/circleci/project/include/hermes/VM/StringPrimitive.h:332:0
hermes::vm::IdentifierTable::createNotUniquedSymbol(hermes::vm::Runtime*, hermes::vm::Handle<hermes::vm::StringPrimitive>)
/home/circleci/project/lib/VM/IdentifierTable.cpp:518:0
#00 0x0000000000041fcc /data/data/com.standardnotes/lib-0/libhermes.so
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::__get_pointer() const
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:1521:17
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::data() const
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:1249:0
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::c_str() const
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:1247:0
hermes::vm::GCBase::oomDetail(std::__ndk1::error_code)
/home/circleci/project/lib/VM/GCBase.cpp:341:0
#00 0x0000000000032f24 /data/data/com.standardnotes/lib-0/libhermes.so
facebook::hermes::HermesRuntimeImpl::JsiProxy::~JsiProxy()
/home/circleci/project/API/hermes/hermes.cpp:779:10
#00 0x00000000000a225c /data/data/com.standardnotes/lib-0/libhermes.so
hermes::vm::GCScope::newHandle(hermes::vm::HermesValue)
/home/circleci/project/include/hermes/VM/HandleRootOwner.h:446:12
hermes::vm::HandleRootOwner::newHandle(hermes::vm::HermesValue)
/home/circleci/project/include/hermes/VM/HandleRootOwner-inline.h:63:0
hermes::vm::HandleBase::HandleBase(hermes::vm::HandleRootOwner*, hermes::vm::HermesValue)
/home/circleci/project/include/hermes/VM/Handle-inline.h:20:0
hermes::vm::Handle<hermes::vm::StringPrimitive>::Handle(hermes::vm::HandleRootOwner*, hermes::vm::StringPrimitive*)
/home/circleci/project/include/hermes/VM/Handle.h:308:0
hermes::vm::Handle<hermes::vm::StringPrimitive> hermes::vm::HandleRootOwner::makeHandle<hermes::vm::StringPrimitive>(hermes::vm::StringPrimitive*)
/home/circleci/project/include/hermes/VM/HandleRootOwner-inline.h:22:0
hermes::vm::Runtime::getPredefinedStringHandle(hermes::vm::Predefined::Str)
/home/circleci/project/include/hermes/VM/Runtime.h:1626:0
hermes::vm::createRangeErrorConstructor(hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/NativeErrorTypes.def:24:0
#00 0x0000000000032b24 /data/data/com.standardnotes/lib-0/libhermes.so
hermes::vm::StringPrimitive::create(hermes::vm::Runtime*, llvm::ArrayRef<char>)
/home/circleci/project/include/hermes/VM/StringPrimitive.h:915:12
#00 0x0000000000041e54 /data/data/com.standardnotes/lib-0/libhermes.so
llvm::Twine::concat(llvm::Twine const&) const
/home/circleci/project/external/llvh/include/llvm/ADT/Twine.h:492:9
llvm::operator+(llvm::Twine const&, llvm::Twine const&)
/home/circleci/project/external/llvh/include/llvm/ADT/Twine.h:516:0
#00 0x0000000000032f24 /data/data/com.standardnotes/lib-0/libhermes.so
facebook::hermes::HermesRuntimeImpl::JsiProxy::~JsiProxy()
/home/circleci/project/API/hermes/hermes.cpp:779:10
#00 0x00000000000a225c /data/data/com.standardnotes/lib-0/libhermes.so
hermes::vm::GCScope::newHandle(hermes::vm::HermesValue)
/home/circleci/project/include/hermes/VM/HandleRootOwner.h:446:12
hermes::vm::HandleRootOwner::newHandle(hermes::vm::HermesValue)
/home/circleci/project/include/hermes/VM/HandleRootOwner-inline.h:63:0
hermes::vm::HandleBase::HandleBase(hermes::vm::HandleRootOwner*, hermes::vm::HermesValue)
/home/circleci/project/include/hermes/VM/Handle-inline.h:20:0
hermes::vm::Handle<hermes::vm::StringPrimitive>::Handle(hermes::vm::HandleRootOwner*, hermes::vm::StringPrimitive*)
/home/circleci/project/include/hermes/VM/Handle.h:308:0
hermes::vm::Handle<hermes::vm::StringPrimitive> hermes::vm::HandleRootOwner::makeHandle<hermes::vm::StringPrimitive>(hermes::vm::StringPrimitive*)
/home/circleci/project/include/hermes/VM/HandleRootOwner-inline.h:22:0
hermes::vm::Runtime::getPredefinedStringHandle(hermes::vm::Predefined::Str)
/home/circleci/project/include/hermes/VM/Runtime.h:1626:0
hermes::vm::createRangeErrorConstructor(hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/NativeErrorTypes.def:24:0
#00 0x0000000000032b24 /data/data/com.standardnotes/lib-0/libhermes.so
hermes::vm::StringPrimitive::create(hermes::vm::Runtime*, llvm::ArrayRef<char>)
/home/circleci/project/include/hermes/VM/StringPrimitive.h:915:12
#00 0x0000000000041e54 /data/data/com.standardnotes/lib-0/libhermes.so
llvm::Twine::concat(llvm::Twine const&) const
/home/circleci/project/external/llvh/include/llvm/ADT/Twine.h:492:9
llvm::operator+(llvm::Twine const&, llvm::Twine const&)
/home/circleci/project/external/llvh/include/llvm/ADT/Twine.h:516:0
#00 0x0000000000032f24 /data/data/com.standardnotes/lib-0/libhermes.so
facebook::hermes::HermesRuntimeImpl::JsiProxy::~JsiProxy()
/home/circleci/project/API/hermes/hermes.cpp:779:10
#00 0x0000000000031ca8 /data/data/com.standardnotes/lib-0/libhermes.so
std::__ndk1::__murmur2_or_cityhash<unsigned long, 64ul>::operator()(void const*, unsigned long)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/utility:1203:45
#00 0x00000000000a2004 /data/data/com.standardnotes/lib-0/libhermes.so
hermes::vm::Runtime::getStringPrimFromSymbolID(hermes::vm::SymbolID)
/home/circleci/project/include/hermes/VM/Runtime.h:1635:27
hermes::vm::Runtime::getPredefinedString(hermes::vm::Predefined::Str)
/home/circleci/project/include/hermes/VM/Runtime.h:1616:0
hermes::vm::createEvalErrorConstructor(hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/NativeErrorTypes.def:23:0
#00 0x0000000000032b24 /data/data/com.standardnotes/lib-0/libhermes.so
hermes::vm::StringPrimitive::create(hermes::vm::Runtime*, llvm::ArrayRef<char>)
/home/circleci/project/include/hermes/VM/StringPrimitive.h:915:12
#00 0x0000000000041e54 /data/data/com.standardnotes/lib-0/libhermes.so
llvm::Twine::concat(llvm::Twine const&) const
/home/circleci/project/external/llvh/include/llvm/ADT/Twine.h:492:9
llvm::operator+(llvm::Twine const&, llvm::Twine const&)
/home/circleci/project/external/llvh/include/llvm/ADT/Twine.h:516:0
#00 0x0000000000032f24 /data/data/com.standardnotes/lib-0/libhermes.so
facebook::hermes::HermesRuntimeImpl::JsiProxy::~JsiProxy()
/home/circleci/project/API/hermes/hermes.cpp:779:10
#00 0x00000000000322a8 /data/data/com.standardnotes/lib-0/libhermes.so
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::capacity() const
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:0:18
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::insert(unsigned long, char const*, unsigned long)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:2595:0
#00 0x0000000000041e78 /data/data/com.standardnotes/lib-0/libhermes.so
llvm::Twine::concat(llvm::Twine const&) const
/home/circleci/project/external/llvh/include/llvm/ADT/Twine.h:494:9
llvm::operator+(llvm::Twine const&, llvm::Twine const&)
/home/circleci/project/external/llvh/include/llvm/ADT/Twine.h:516:0
#00 0x0000000000032f24 /data/data/com.standardnotes/lib-0/libhermes.so
facebook::hermes::HermesRuntimeImpl::JsiProxy::~JsiProxy()
/home/circleci/project/API/hermes/hermes.cpp:779:10
#00 0x00000000000322a8 /data/data/com.standardnotes/lib-0/libhermes.so
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::capacity() const
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:0:18
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::insert(unsigned long, char const*, unsigned long)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:2595:0
#00 0x0000000000041e78 /data/data/com.standardnotes/lib-0/libhermes.so
llvm::Twine::concat(llvm::Twine const&) const
/home/circleci/project/external/llvh/include/llvm/ADT/Twine.h:494:9
llvm::operator+(llvm::Twine const&, llvm::Twine const&)
/home/circleci/project/external/llvh/include/llvm/ADT/Twine.h:516:0
#00 0x0000000000032f24 /data/data/com.standardnotes/lib-0/libhermes.so
facebook::hermes::HermesRuntimeImpl::JsiProxy::~JsiProxy()
/home/circleci/project/API/hermes/hermes.cpp:779:10
#00 0x00000000000322a8 /data/data/com.standardnotes/lib-0/libhermes.so
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::capacity() const
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:0:18
std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::insert(unsigned long, char const*, unsigned long)
/opt/android/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string:2595:0
#00 0x0000000000027744 /data/data/com.standardnotes/lib-0/libhermes.so (facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)+436)
                                                                        ??
                                                                        ??:0:0
#00 0x00000000000264f4 /data/data/com.standardnotes/lib-0/libhermes-executor-release.so (facebook::jsi::Value facebook::jsi::Function::call<double const&, facebook::jsi::Value>(facebook::jsi::Runtime&, double const&, facebook::jsi::Value&&) const+120)
#00 0x000000000002632c /data/data/com.standardnotes/lib-0/libhermes-executor-release.so (facebook::react::JSIExecutor::invokeCallback(double, folly::dynamic const&)+164)
#00 0x00000000000a347c /data/data/com.standardnotes/lib-0/libreactnativejni.so
#00 0x00000000000a445c /data/data/com.standardnotes/lib-0/libreactnativejni.so
#00 0x00000000000698c0 /data/data/com.standardnotes/lib-0/libreactnativejni.so
#00 0x000000000005a72c /data/data/com.standardnotes/lib-0/libreactnativejni.so (facebook::jni::detail::MethodWrapper<void (facebook::react::JNativeRunnable::*)(), &(facebook::react::JNativeRunnable::run()), facebook::react::JNativeRunnable, void>::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*>)+32)
#00 0x000000000005a6a8 /data/data/com.standardnotes/lib-0/libreactnativejni.so (facebook::jni::detail::FunctionWrapper<void (*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*>), &(facebook::jni::detail::MethodWrapper<void (facebook::react::JNativeRunnable::*)(), &(facebook::react::JNativeRunnable::run()), facebook::react::JNativeRunnable, void>::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*>)), facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*, void>::call(_JNIEnv*, _jobject*)+52)
#00 0x00000000000d020c /data/app/com.standardnotes-ZkF2ht7jwKgIu-R-cmCPwQ==/oat/arm64/base.odex (offset 0xd0000) (com.bugsnag.android.ndk.NativeBridge.addHandledEvent [DEDUPED]+124)
#00 0x0000000000b252bc /system/framework/arm64/boot-framework.oat (offset 0x41f000) (android.os.Handler.dispatchMessage+76)
#00 0x0000000000171ed0 /data/app/com.standardnotes-ZkF2ht7jwKgIu-R-cmCPwQ==/oat/arm64/base.odex (offset 0xd0000) (com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage+48)
#00 0x0000000000b28420 /system/framework/arm64/boot-framework.oat (offset 0x41f000) (android.os.Looper.loop+1264)
#00 0x00000000001720e0 /data/app/com.standardnotes-ZkF2ht7jwKgIu-R-cmCPwQ==/oat/arm64/base.odex (offset 0xd0000) (com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run+288)
#00 0x000000000025e068 /system/framework/arm64/boot.oat (offset 0x115000) (java.lang.Thread.run+72)
#00 0x0000000000561f88 /system/lib64/libart.so (art_quick_invoke_stub+584)
#00 0x00000000000d0140 /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#00 0x00000000004682e0 /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
#00 0x00000000004693a8 /system/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+424)
#00 0x0000000000494ca0 /system/lib64/libart.so (art::Thread::CreateCallback(void*)+1120)
#00 0x0000000000084e00 /system/lib64/libc.so (__pthread_start(void*)+208)
#00 0x0000000000023a8c /system/lib64/libc.so (__start_thread+68)

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 16 (9 by maintainers)

Most upvoted comments

Thank you - we were able to track down the offending code change that was triggering this OOM. I’m anxious to see your fix for improving the crash message go out - I think that will help us spot the culprit faster if it happens again in the future.

This is the issue and comment where I’m trying to pick in the improved crash message: https://github.com/react-native-community/releases/issues/214#issuecomment-769296851

Thanks again for your help @dulinriley. I think the problem with the bad symbolication came from our app using a version of the NDK (r15) which couldn’t symbolicate arm64.

RN 0.63.4 Hermes: 0.5.2-rc1 Hermes unstripped libraries: hermes-runtime-android-v0.5.2-rc1.tar.gz

Running this again using ndk-trace from the latest version of the ndk:

./ndk-stack -sym ~/Downloads/t/unstripped-release/0/lib/arm64-v8a < ~/Desktop/unsymbolicated_crash.txt

Output

********** Crash dump: **********
#00 0x000000000002b288 /data/data/com.X.Y/lib-0/libhermes.so (facebook::hermes::detail::hermesFatalErrorHandler(void*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>> const&, bool)+28)
                                                              facebook::hermes::detail::hermesFatalErrorHandler(void*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, bool)
                                                              /home/circleci/project/API/hermes/hermes.cpp:144:32
#00 0x00000000001940e8 /data/data/com.X.Y/lib-0/libhermes.so
llvm::report_fatal_error(llvm::Twine const&, bool)
/home/circleci/project/external/llvh/lib/Support/ErrorHandling.cpp:108:5
#00 0x0000000000193fe0 /data/data/com.X.Y/lib-0/libhermes.so
llvm::report_fatal_error(char const*, bool)
/home/circleci/project/external/llvh/lib/Support/ErrorHandling.cpp:83:3
#00 0x000000000016a6fc /data/data/com.X.Y/lib-0/libhermes.so
hermes::hermes_fatal(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)
/home/circleci/project/lib/Support/ErrorHandling.cpp:61:3
#00 0x0000000000041e40 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::GCBase::oom(std::__ndk1::error_code)
/home/circleci/project/lib/VM/GCBase.cpp:327:3
#00 0x00000000000d940c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::OldGen::fullCollectThenAlloc(unsigned int, hermes::vm::HasFinalizer)
/home/circleci/project/lib/VM/gcs/OldGenNC.cpp:629:8
#00 0x000000000004ae1c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::OldGen::alloc(unsigned int, hermes::vm::HasFinalizer)
/home/circleci/project/include/hermes/VM/OldGenNC.h:488:10
void* hermes::vm::GenGC::allocLongLivedImpl<(hermes::vm::HasFinalizer)1>(unsigned int)
/home/circleci/project/include/hermes/VM/GenGCNC.h:1022:0
#00 0x0000000000048e9c /data/data/com.X.Y/lib-0/libhermes.so
void* hermes::vm::GenGC::allocLongLived<(hermes::vm::HasFinalizer)1>(unsigned int)
/home/circleci/project/include/hermes/VM/GenGCNC.h:991:14
void* hermes::vm::Runtime::allocLongLived<(hermes::vm::HasFinalizer)1>(unsigned int)
/home/circleci/project/include/hermes/VM/Runtime.h:1581:0
hermes::vm::HiddenClass::create(hermes::vm::Runtime*, hermes::vm::ClassFlags, hermes::vm::Handle<hermes::vm::HiddenClass>, hermes::vm::SymbolID, hermes::vm::PropertyFlags, unsigned int)
/home/circleci/project/lib/VM/HiddenClass.cpp:256:0
hermes::vm::HiddenClass::addProperty(hermes::vm::Handle<hermes::vm::HiddenClass>, hermes::vm::Runtime*, hermes::vm::SymbolID, hermes::vm::PropertyFlags)
/home/circleci/project/lib/VM/HiddenClass.cpp:551:0
#00 0x000000000005d120 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::JSObject::addOwnPropertyImpl(hermes::vm::Handle<hermes::vm::JSObject>, hermes::vm::Runtime*, hermes::vm::SymbolID, hermes::vm::PropertyFlags, hermes::vm::Handle<hermes::vm::HermesValue>)
/home/circleci/project/lib/VM/JSObject.cpp:2676:20
#00 0x0000000000050200 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false>(hermes::vm::Runtime*, hermes::vm::InterpreterState&)
/home/circleci/project/lib/VM/Interpreter.cpp:3228:7
#00 0x000000000004e93c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
/home/circleci/project/lib/VM/Interpreter.cpp:862:10
#00 0x00000000000bfdc0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Callable::call(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:270:12
hermes::vm::functionPrototypeCall(void*, hermes::vm::Runtime*, hermes::vm::NativeArgs)
/home/circleci/project/lib/VM/JSLib/Function.cpp:234:0
#00 0x000000000003efac /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:534:9
#00 0x000000000004d9f0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime*, hermes::vm::PinnedHermesValue*)
/home/circleci/project/lib/VM/Interpreter.cpp:321:12
#00 0x0000000000050e34 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false>(hermes::vm::Runtime*, hermes::vm::InterpreterState&)
/home/circleci/project/lib/VM/Interpreter.cpp:1676:7
#00 0x000000000004e93c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
/home/circleci/project/lib/VM/Interpreter.cpp:862:10
#00 0x000000000003de28 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Callable::call(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:270:12
hermes::vm::Callable::executeCall(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::JSObject>)
/home/circleci/project/lib/VM/Callable.cpp:378:0
#00 0x00000000000bfb70 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::functionPrototypeApply(void*, hermes::vm::Runtime*, hermes::vm::NativeArgs)
/home/circleci/project/lib/VM/JSLib/Function.cpp:211:10
#00 0x000000000003efac /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:534:9
#00 0x000000000004d9f0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime*, hermes::vm::PinnedHermesValue*)
/home/circleci/project/lib/VM/Interpreter.cpp:321:12
#00 0x0000000000050e34 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false>(hermes::vm::Runtime*, hermes::vm::InterpreterState&)
/home/circleci/project/lib/VM/Interpreter.cpp:1676:7
#00 0x000000000004e93c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
/home/circleci/project/lib/VM/Interpreter.cpp:862:10
#00 0x00000000000bfdc0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Callable::call(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:270:12
hermes::vm::functionPrototypeCall(void*, hermes::vm::Runtime*, hermes::vm::NativeArgs)
/home/circleci/project/lib/VM/JSLib/Function.cpp:234:0
#00 0x000000000003efac /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:534:9
#00 0x000000000004d9f0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime*, hermes::vm::PinnedHermesValue*)
/home/circleci/project/lib/VM/Interpreter.cpp:321:12
#00 0x0000000000050e34 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false>(hermes::vm::Runtime*, hermes::vm::InterpreterState&)
/home/circleci/project/lib/VM/Interpreter.cpp:1676:7
#00 0x000000000004e93c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
/home/circleci/project/lib/VM/Interpreter.cpp:862:10
#00 0x000000000003d9c4 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Callable::call(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:270:12
hermes::vm::Callable::executeCall3(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::HermesValue, hermes::vm::HermesValue, hermes::vm::HermesValue, bool)
/home/circleci/project/lib/VM/Callable.cpp:312:0
#00 0x0000000000090bf0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::arrayPrototypeForEach(void*, hermes::vm::Runtime*, hermes::vm::NativeArgs)
/home/circleci/project/lib/VM/JSLib/Array.cpp:1282:11
#00 0x000000000003efac /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:534:9
#00 0x000000000003de28 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Callable::call(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:270:12
hermes::vm::Callable::executeCall(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::JSObject>)
/home/circleci/project/lib/VM/Callable.cpp:378:0
#00 0x00000000000bfb70 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::functionPrototypeApply(void*, hermes::vm::Runtime*, hermes::vm::NativeArgs)
/home/circleci/project/lib/VM/JSLib/Function.cpp:211:10
#00 0x000000000003efac /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:534:9
#00 0x000000000004d9f0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime*, hermes::vm::PinnedHermesValue*)
/home/circleci/project/lib/VM/Interpreter.cpp:321:12
#00 0x0000000000050e34 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false>(hermes::vm::Runtime*, hermes::vm::InterpreterState&)
/home/circleci/project/lib/VM/Interpreter.cpp:1676:7
#00 0x000000000004e93c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
/home/circleci/project/lib/VM/Interpreter.cpp:862:10
#00 0x00000000000bfdc0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Callable::call(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:270:12
hermes::vm::functionPrototypeCall(void*, hermes::vm::Runtime*, hermes::vm::NativeArgs)
/home/circleci/project/lib/VM/JSLib/Function.cpp:234:0
#00 0x000000000003efac /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:534:9
#00 0x000000000004d9f0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime*, hermes::vm::PinnedHermesValue*)
/home/circleci/project/lib/VM/Interpreter.cpp:321:12
#00 0x0000000000050e34 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false>(hermes::vm::Runtime*, hermes::vm::InterpreterState&)
/home/circleci/project/lib/VM/Interpreter.cpp:1676:7
#00 0x000000000004e93c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
/home/circleci/project/lib/VM/Interpreter.cpp:862:10
#00 0x00000000000bfdc0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Callable::call(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:270:12
hermes::vm::functionPrototypeCall(void*, hermes::vm::Runtime*, hermes::vm::NativeArgs)
/home/circleci/project/lib/VM/JSLib/Function.cpp:234:0
#00 0x000000000003efac /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:534:9
#00 0x000000000004d9f0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime*, hermes::vm::PinnedHermesValue*)
/home/circleci/project/lib/VM/Interpreter.cpp:321:12
#00 0x0000000000050e34 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false>(hermes::vm::Runtime*, hermes::vm::InterpreterState&)
/home/circleci/project/lib/VM/Interpreter.cpp:1676:7
#00 0x000000000004e93c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
/home/circleci/project/lib/VM/Interpreter.cpp:862:10
#00 0x000000000003de28 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Callable::call(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:270:12
hermes::vm::Callable::executeCall(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::JSObject>)
/home/circleci/project/lib/VM/Callable.cpp:378:0
#00 0x00000000000bfb70 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::functionPrototypeApply(void*, hermes::vm::Runtime*, hermes::vm::NativeArgs)
/home/circleci/project/lib/VM/JSLib/Function.cpp:211:10
#00 0x000000000003efac /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:534:9
#00 0x000000000004d9f0 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime*, hermes::vm::PinnedHermesValue*)
/home/circleci/project/lib/VM/Interpreter.cpp:321:12
#00 0x0000000000050e34 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false>(hermes::vm::Runtime*, hermes::vm::InterpreterState&)
/home/circleci/project/lib/VM/Interpreter.cpp:1676:7
#00 0x000000000004e93c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
/home/circleci/project/lib/VM/Interpreter.cpp:862:10
#00 0x000000000003eb0c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Callable::call(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:270:12
hermes::vm::BoundFunction::_boundCall(hermes::vm::BoundFunction*, hermes::inst::Inst const*, hermes::vm::Runtime*)
/home/circleci/project/lib/VM/Callable.cpp:846:0
#00 0x000000000004da08 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime*, hermes::vm::PinnedHermesValue*)
/home/circleci/project/lib/VM/Interpreter.cpp:325:12
#00 0x0000000000050e34 /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false>(hermes::vm::Runtime*, hermes::vm::InterpreterState&)
/home/circleci/project/lib/VM/Interpreter.cpp:1676:7
#00 0x000000000004e93c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
/home/circleci/project/lib/VM/Interpreter.cpp:862:10
#00 0x000000000003eb0c /data/data/com.X.Y/lib-0/libhermes.so
hermes::vm::Callable::call(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*)
/home/circleci/project/include/hermes/VM/Callable.h:270:12
hermes::vm::BoundFunction::_boundCall(hermes::vm::BoundFunction*, hermes::inst::Inst const*, hermes::vm::Runtime*)
/home/circleci/project/lib/VM/Callable.cpp:846:0
#00 0x000000000002f108 /data/data/com.X.Y/lib-0/libhermes.so (facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)+444)
                                                              hermes::vm::Callable::call(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime*)
                                                              /home/circleci/project/include/hermes/VM/Callable.h:270:12
                                                              facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)::$_21::operator()() const
                                                              /home/circleci/project/API/hermes/hermes.cpp:1851:0
                                                              decltype(fp()) (anonymous namespace)::maybeRethrow<facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)::$_21>(facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)::$_21 const&)
                                                              /home/circleci/project/API/hermes/hermes.cpp:111:0
                                                              facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)
                                                              /home/circleci/project/API/hermes/hermes.cpp:1823:0
#00 0x000000000002a334 /data/data/com.X.Y/lib-0/libhermes-executor-release.so (facebook::jsi::Value facebook::jsi::Function::call<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, facebook::jsi::Value>(facebook::jsi::Runtime&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, facebook::jsi::Value&&) const+240)
#00 0x000000000002a190 /data/data/com.X.Y/lib-0/libhermes-executor-release.so
#00 0x00000000000245e4 /data/data/com.X.Y/lib-0/libhermes-executor-release.so (void std::__ndk1::__invoke_void_return_wrapper<void>::__call<void (*&)(std::__ndk1::function<void ()> const&, std::__ndk1::function<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > ()>), std::__ndk1::function<void ()> const&, std::__ndk1::function<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > ()> >(void (*&)(std::__ndk1::function<void ()> const&, std::__ndk1::function<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > ()>), std::__ndk1::function<void ()> const&, std::__ndk1::function<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > ()>&&)+116)
#00 0x0000000000027034 /data/data/com.X.Y/lib-0/libhermes-executor-release.so (facebook::react::JSIExecutor::callFunction(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>> const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>> const&, folly::dynamic const&)+1156)
#00 0x00000000000a0d58 /data/data/com.X.Y/lib-0/libreactnativejni.so
#00 0x00000000000a2350 /data/data/com.X.Y/lib-0/libreactnativejni.so
#00 0x0000000000068d48 /data/data/com.X.Y/lib-0/libreactnativejni.so
#00 0x0000000000059a70 /data/data/com.X.Y/lib-0/libreactnativejni.so (facebook::jni::detail::MethodWrapper<void (facebook::react::JNativeRunnable::*)(), &(facebook::react::JNativeRunnable::run()), facebook::react::JNativeRunnable, void>::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*>)+32)
#00 0x00000000000599ec /data/data/com.X.Y/lib-0/libreactnativejni.so (facebook::jni::detail::FunctionWrapper<void (*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*>), &(facebook::jni::detail::MethodWrapper<void (facebook::react::JNativeRunnable::*)(), &(facebook::react::JNativeRunnable::run()), facebook::react::JNativeRunnable, void>::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*>)), facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*, void>::call(_JNIEnv*, _jobject*)+52)
#00 0x00000000000c123c /data/app/com.X.Y-k9M8Kava8PGj6ZU7tkDlrA==/oat/arm64/base.odex (offset 0xc0000) (com.facebook.jni.NativeRunnable.run [DEDUPED]+124)
#00 0x0000000000b1fd0c /system/framework/arm64/boot-framework.oat (offset 0x422000) (android.os.Handler.dispatchMessage+76)
#00 0x0000000000062780 /dev/ashmem/dalvik-jit-code-cache_26394_26394 (deleted)

I landed a fix for the missing fatal message with https://github.com/facebook/react-native/commit/291cc95cc9e3c8e37fc7f2160d4eacd91b1c72be in the React Native repo. I’ll try to pick that commit into RN 0.64. After that is in, the cause of this should be more clear