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)
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:
Output
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