В нашем приложении отслеживания ошибок cra sh я вижу увеличение количества сбоев с "SIGSEGV: нарушение сегментации (недопустимая ссылка на память)". Кажется, они происходят только на Android, а трассировка стека полна libhermes.so.
Эта трассировка стека ничего мне не говорит, и я не нашел ни одного существующего вопроса с той же проблемой. У кого-нибудь есть идеи, где искать причину root для этого? Это ошибка javascript, что Гермес превращается в SIGSEGV? Ошибка в гермесе? Cra sh в одной из используемых нами библиотек?
Stacktrace от одного из сбоев.
SIGSEGV Segmentation violation (invalid memory reference)
/data/app/com.wolt.courierapp-poHmOlYLJ3-nWo0m_w4kVw==/lib/arm64/libhermes.so:116080 facebook::hermes::detail::hermesFatalErrorHandler(void*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, bool)
/data/app/.../lib/arm64/libhermes.so:1222852 0x701af048c4
/data/app/.../lib/arm64/libhermes.so:1222588 0x701af047bc
/data/app/.../lib/arm64/libhermes.so:1056428 0x701aedbeac
/data/app/.../lib/arm64/libhermes.so:182328 0x701ae06838
/data/app/.../lib/arm64/libhermes.so:523104 0x701ae59b60
/data/app/.../lib/arm64/libhermes.so:298092 0x701ae22c6c
/data/app/.../lib/arm64/libhermes.so:564832 0x701ae63e60
/data/app/.../lib/arm64/libhermes.so:216036 0x701ae0ebe4
/data/app/.../lib/arm64/libhermes.so:568480 0x701ae64ca0
/data/app/.../lib/arm64/libhermes.so:578128 0x701ae67250
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:539976 0x701ae5dd48
/data/app/.../lib/arm64/libhermes.so:662544 0x701ae7bc10
/data/app/.../lib/arm64/libhermes.so:723864 0x701ae8ab98
/data/app/.../lib/arm64/libhermes.so:724172 0x701ae8accc
/data/app/.../lib/arm64/libhermes.so:724136 0x701ae8aca8
/data/app/.../lib/arm64/libhermes.so:645300 0x701ae778b4
/data/app/.../lib/arm64/libhermes.so:543328 0x701ae5ea60
/data/app/.../lib/arm64/libhermes.so:581332 0x701ae67ed4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:581364 0x701ae67ef4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:581364 0x701ae67ef4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:581364 0x701ae67ef4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:413044 0x701ae3ed74
/data/app/.../lib/arm64/libhermes.so:543328 0x701ae5ea60
/data/app/.../lib/arm64/libhermes.so:581332 0x701ae67ed4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:413044 0x701ae3ed74
/data/app/.../lib/arm64/libhermes.so:543328 0x701ae5ea60
/data/app/.../lib/arm64/libhermes.so:581332 0x701ae67ed4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:581364 0x701ae67ef4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:581364 0x701ae67ef4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:147152 facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)
/data/app/.../lib/arm64/libhermes-executor-release.so:173936 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
/data/app/.../lib/arm64/libhermes-executor-release.so:173516 0x701a4765cc
/data/app/.../lib/arm64/libhermes-executor-release.so:154820 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> > ()>&&)
/data/app/.../lib/arm64/libhermes-executor-release.so:164992 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&)
/data/app/.../lib/arm64/libreactnativejni.so:683496 0x701a639de8
/data/app/.../lib/arm64/libreactnativejni.so:688656 0x701a63b210
/data/app/.../lib/arm64/libreactnativejni.so:439588 0x701a5fe524
/data/app/.../lib/arm64/libreactnativejni.so:372684 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/app/.../lib/arm64/libreactnativejni.so:372552
unknown 0x3850766e45494e4a```