Realm-js: 6.0.3 iOS native crash - Attempted to dereference null pointer.

Created on 6 Aug 2020  路  61Comments  路  Source: realm/realm-js

Goals

Regular offline use (no syncing)

Expected Results

No crashes

Actual Results

Random crash due to garbage / null reference.

The following crash was reported from Realm code.

EXC_BAD_ACCESS Attempted to dereference null pointer. 
    Tenant Move-In realm::jsc::ObjectWrap<realm::js::SessionClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_is_partial_realm>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::object_for_primary_key>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_is_partial_realm>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::write>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopDoBlocks
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

While I understand this is probably extremely hard to debug/reproduce in a controlled environment, it would be great for Realm to attempt to handle null pointer exceptions in a way that won't crash the whole app, but rather cause a query error or something. This is probably one out of 10 different realm-related native crashes that are reported daily from our crash reporting tool.

Similar crashes:
https://github.com/realm/realm-js/issues/3111
https://github.com/realm/realm-js/issues/2853
https://github.com/realm/realm-js/issues/2828
https://github.com/realm/realm-js/issues/2713

Steps to Reproduce


Regular realm usage without any sync/online features.

Code Sample

Regular offline use, no special code required.

Version of Realm and Tooling

  • Realm JS SDK Version: ? 6.0.3
  • Node or React Native: ? React Native 0.61.5
  • Client OS & Version: ? iOS 13.6 / iPhone 8
  • Which debugger for React Native: None - production build
O-Community

Most helpful comment

Just adding to this thread, that I've started to see this in a client's React Native app since updating to Realm JS 10.0.1, alongside react-native @ 0.63.3.

The crash logs basically match the ones above, and Sentry & Firebase (along with internal logs) are reporting that they're always occurring whilst the app isn't active. Happy to help with testing fixes, let me know if that'd be useful!

All 61 comments

Another one popped out today... May be related:

EXC_BAD_ACCESS Attempted to dereference garbage pointer 0x10. 
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool JSC::symbolTableGet<JSC::JSGlobalObject>(JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::JSObject::get(JSC::JSGlobalObject*, JSC::PropertyName) const
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectGetProperty
    zinspector3 void std::__1::__call_once_proxy<std::__1::tuple<realm::SyncManager& realm::js::syncManagerShared<realm::jsc::Types>(realm::jsc::Types::Context&)::{lambda()#1}&&> >(void*)
    zinspector3 void std::__1::__call_once_proxy<std::__1::tuple<realm::SyncManager& realm::js::syncManagerShared<realm::jsc::Types>(realm::jsc::Types::Context&)::{lambda()#1}&&> >(void*)
    zinspector3 bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    zinspector3 OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const**)
    zinspector3 OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::sorted>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopDoBlocks
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

We have been getting a significant amount of crashes ever since 5.0.3 to 6.x migration from Realm.

@cristianoccazinsp did you not get these errors with 5.03? I just started testing my first app with realm and already ran into these errors (specifically the 2nd one you posted)

I definitely got various similar errors with 5.0.3, but they have become much more frequent with 6.x, and also look like new errors (and possibly even a memleak).

Another similar one just popped, yet different:

EXC_BAD_ACCESS Attempted to dereference garbage pointer 0x8. 
    zinspector3 realm::util::EventLoopSignal<realm::util::EventLoopDispatcher<void (std::__1::shared_ptr<realm::SyncSession>, realm::SyncError)>::Callback>::EventLoopSignal(realm::util::EventLoopDispatcher<void (std::__1::shared_ptr<realm::SyncSession>, realm::SyncError)>::Callback&&)::{lambda(void const*)#2}::__invoke(void const*)
    zinspector3 bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    zinspector3 bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    zinspector3 realm::util::EventLoopSignal<realm::util::EventLoopDispatcher<void (realm::ThreadSafeReference<realm::Realm>&&, std::exception_ptr)>::Callback>::EventLoopSignal(realm::util::EventLoopDispatcher<void (realm::ThreadSafeReference<realm::Realm>&&, std::exception_ptr)>::Callback&&)::{lambda(void const*)#2}::__invoke(void const*)
    zinspector3 OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::object_for_primary_key>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    zinspector3 realm::util::EventLoopSignal<realm::util::EventLoopDispatcher<void (realm::ThreadSafeReference<realm::Realm>&&, std::exception_ptr)>::Callback>::EventLoopSignal(realm::util::EventLoopDispatcher<void (realm::ThreadSafeReference<realm::Realm>&&, std::exception_ptr)>::Callback&&)::{lambda(void const*)#2}::__invoke(void const*)
    zinspector3 OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::write>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopDoBlocks
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Why would "sync session" even be used if the database is used entirely offline? Either way, there are about 10 crashes / day for an app that's actively used by about 2000 people. The number seem to have increased significantly after the 5 to 6 migration.

Looking at breadcrumbs, this one seemed to happen in a very curious scenario:

  • App was sleeping / background for ~ minutes
  • App resumed, and 2 seconds afterwards crashed with this error.

Here's another crash stack trace, looks like this is a recurring crash. I wish I could provide more info:

EXC_BAD_ACCESS Attempted to dereference garbage pointer 0x8. 
    Tenant Move-In realm::jsc::ObjectWrap<realm::js::SessionClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_is_partial_realm>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::object_for_primary_key>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_is_partial_realm>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::write>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopDoBlocks
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Sorry for the spam, here's another one (new) crash, a SIGABRT this time. These crashes are happening too frequently.

    /usr/lib/system/libsystem_kernel.dylib ___pthread_kill
    /usr/lib/system/libsystem_pthread.dylib _pthread_kill
    /usr/lib/system/libsystem_c.dylib _abort
    Tenant Move-In realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    Tenant Move-In realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    Tenant Move-In realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    Tenant Move-In realm::Obj& realm::Obj::set<realm::Timestamp>(realm::ColKey, realm::Timestamp, bool)
    Tenant Move-In realm::StringData realm::ConstObj::get<realm::StringData>(realm::ColKey) const
    Tenant Move-In void std::__1::__call_once_proxy<std::__1::tuple<void (&)()> >(void*)
    Tenant Move-In void std::__1::__call_once_proxy<std::__1::tuple<void (&)()> >(void*)
    Tenant Move-In void std::__1::__call_once_proxy<std::__1::tuple<void (&)()> >(void*)
    Tenant Move-In realm::Obj& realm::Obj::set<realm::Timestamp>(realm::ColKey, realm::Timestamp, bool)
    Tenant Move-In realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    Tenant Move-In realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    Tenant Move-In realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    Tenant Move-In realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    Tenant Move-In realm::Obj realm::Results::get<realm::Obj>(unsigned long)
    Tenant Move-In unsigned long realm::Results::index_of<realm::util::Optional<double> >(realm::util::Optional<double> const&)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_length>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::JSCallbackObject<JSC::JSNonFinalObject>::getStaticValue(JSC::JSGlobalObject*, JSC::PropertyName)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::JSCallbackObject<JSC::JSNonFinalObject>::getOwnPropertySlot(JSC::JSObject*, JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_slow_path_get_by_id
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopDoBlocks
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Crash logs from XCode reporting. Interestingly, it says it should be reported here:

Screen Shot 2020-08-11 at 14 51 10

Screen Shot 2020-08-11 at 14 52 36

@kneth I have attached the XCode crash log files, perhaps this can help with diagnosing the problem.
crash files.zip

This is a new one, also on 6.0.3:

EXC_BAD_ACCESS Attempted to dereference null pointer. 
    Tenant Move-In realm::Obj& realm::Obj::set<realm::Timestamp>(realm::ColKey, realm::Timestamp, bool)
    Tenant Move-In bool realm::Array::find<realm::Less, (realm::Action)0, 64ul>(long long, unsigned long, unsigned long, unsigned long, realm::QueryState<long long>*) const
    Tenant Move-In realm::Obj& realm::Obj::set<realm::Timestamp>(realm::ColKey, realm::Timestamp, bool)
    Tenant Move-In realm::Obj& realm::Obj::set<realm::Timestamp>(realm::ColKey, realm::Timestamp, bool)
    Tenant Move-In bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmObjectClass<realm::jsc::Types>::get_realm>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmObjectClass<realm::jsc::Types>::get_property>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::JSCallbackObject<JSC::JSNonFinalObject>::call(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::callGetter(JSC::JSGlobalObject*, JSC::JSValue, JSC::JSValue)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_slow_path_get_by_id
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopDoBlocks
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Perhaps this is caused by having a single global realm instance across the app instead of creating a new one before each query?

@cristianoccazinsp As we are trying to get a hold on this issue, I would like to know if you see the same error on Android?

Haven't seen this on Android at all.

@cristianoccazinsp

App was sleeping / background for ~ minutes
App resumed, and 2 seconds afterwards crashed with this error.

Can it be related to https://github.com/realm/realm-js/issues/3162?

@kneth the crash seems different, and I'm not entirely sure how to reproduce that one. Does realm just crash if the app is in background and the phone is locked? I'm sure I have seen the app run just fine in that situation since we use background tasks all the time.

@cristianoccazinsp When an iOS app is suspended (in recent iOS versions), the data and files are encrypted. Once the app is activated, the decryption might happen later than Realm's access to the realm files. Then Realm will believe the file is corrupted. Unfortunately it is easy to solve (a pure Objective C or Swift app can be fixed: https://github.com/realm/realm-cocoa/issues/5912#issuecomment-421094170).

I wanted to bring it to your attention and have you verify it is not the same issue.

@kneth I will try to reproduce the scenario locally to see if it is in fact the same issue. I never noticed any crash when the phone is suspended though, but perhaps I wasn't giving it enough time.

On the other hand, the crash / stack trace message seems different, doesn't it?

@cristianoccazinsp Thanks for the update.

On the other hand, the crash / stack trace message seems different, doesn't it?

Indeed but corruption (true or due to an encrypted file) will turn up is many random ways.

You mention that you are not using sync, but the original stack trace hints otherwise:

realm::jsc::ObjectWrap<realm::js::SessionClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**)

Hmm, I'm definitely not using sync, at least not on purpose. Having said this, I have never been able to reproduce the crash myself, not even locking the device.

Would it be too complex to add some extra defensive programming here and there to add null checks and prevent crashes? It would be great to have just the query crash rather than the whole app, even if we don't know why the object was suddenly garbage collected / null.

@cristianoccazinsp

Would it be too complex to add some extra defensive programming here and there to add null checks and prevent crashes?

It is possible, and a JavaScript exception will be better in many cases. I'll add it to the backlog and get it prioritized.

I keep seeing iOS crashes with similar stack traces, and they all seem to happen with very little free memory (~45mb reported by the crash analytics tool). Not sure how easy it would be to debug a possible memory leak within the C++ or Objective C Realm's code, or even in the non Realm code. I've tried to profile the app for a while and didn't observe any memory leak or anything that would cause the app to end up with so little memory.

Here's another stack trace:

EXC_BAD_ACCESS Attempted to dereference garbage pointer 0x8. 
    Tenant Move-In realm::jsc::ObjectWrap<realm::js::ObservableClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_is_partial_realm>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::object_for_primary_key>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_is_partial_realm>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::write>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopDoBlocks
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

@cristianoccazinsp We have released v6.1.1 with core fixes which addresses these issues. Could I ask you to upgrade & test this out?

I will, it may take some days or a few weeks until the release is live and we get enough testing, but I will keep you posted.

@cristianoccazinsp any update on this?

@steffenagger I'm still seeing crashes. See the following stack trace (different app but updated Realm (6.1.2) with the same code):

EXC_BAD_ACCESS Attempted to dereference garbage pointer 0x10. 
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool JSC::symbolTableGet<JSC::JSGlobalObject>(JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::JSObject::get(JSC::JSGlobalObject*, JSC::PropertyName) const
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectGetProperty
    zinspector3 realm::js::SSLVerifyCallbackSyncThreadFunctor<realm::jsc::Types>::main_loop_handler(realm::js::SSLVerifyCallbackSyncThreadFunctor<realm::jsc::Types>*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned short, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
    zinspector3 realm::js::SSLVerifyCallbackSyncThreadFunctor<realm::jsc::Types>::main_loop_handler(realm::js::SSLVerifyCallbackSyncThreadFunctor<realm::jsc::Types>*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned short, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
    zinspector3 realm::NodeHeader::get_byte_size_from_header(char const*)
    zinspector3 OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const**)
    zinspector3 OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::sorted>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopDoBlocks
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

@cristianoccazinsp

realm::js::wrap<&realm::js::ResultsClass::sorted>(OpaqueJSContext const, OpaqueJSValue, OpaqueJSValue, unsigned long, OpaqueJSValue const const, OpaqueJSValue const*)

Does it also happen when you don't sort?

I will need to go through the various stack traces to see if there are other similar crashes with realm in it, but it's impossible to tell since it happens randomly and only in production (i.e., can't reproduce locally).

Here's another crash report, this time from XCode (seems more comprehensive than the above):

Thread 2 name:
Thread 2 Crashed:
0   zinspector3                     0x00000001006dc85c std::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unordered_map<std:... + 116 (__hash_table:2494)
1   zinspector3                     0x00000001006dc814 std::__1::__unordered_map_hasher<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_trait... + 4 (unordered_map:445)
2   zinspector3                     0x00000001006dc814 std::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unordered_map<std:... + 44 (__hash_table:2489)
3   zinspector3                     0x000000010070dc60 unsigned long std::__1::__hash_table<std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unordered_map<std::__1::basic_strin... + 20 (__hash_table:2718)
4   zinspector3                     0x000000010070dc60 std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std:... + 20 (unordered_map:1282)
5   zinspector3                     0x000000010070dc60 realm::jsc::ObjectWrap<realm::js::RealmObjectClass<realm::jsc::Types> >::create_instance_by_schema(OpaqueJSContext const*, OpaqueJSValue*&, realm::ObjectSchema const&, realm::js::RealmObject<realm:... + 388 (jsc_class.hpp:679)
6   zinspector3                     0x000000010070d914 OpaqueJSValue* realm::js::Object<realm::jsc::Types>::create_instance_by_schema<realm::js::RealmObjectClass<realm::jsc::Types> >(OpaqueJSContext const*, OpaqueJSValue*&, realm::ObjectSchema const&, ... + 20 (jsc_object.hpp:125)
7   zinspector3                     0x000000010070d914 realm::jsc::Types::Object realm::js::create_instance_by_schema<realm::jsc::Types, realm::js::RealmObjectClass<realm::jsc::Types> >(realm::jsc::Types::Context, realm::jsc::Types::Function&, realm::O... + 20 (js_types.hpp:369)
8   zinspector3                     0x000000010070d914 realm::js::RealmObjectClass<realm::jsc::Types>::create_instance(OpaqueJSContext const*, realm::js::RealmObject<realm::jsc::Types>) + 220 (js_realm_object.hpp:146)
9   zinspector3                     0x0000000100725ffc realm::js::RealmClass<realm::jsc::Types>::object_for_primary_key(OpaqueJSContext const*, OpaqueJSValue*, realm::js::Arguments<realm::jsc::Types>&, realm::js::ReturnValue<realm::jsc::Types>&) + 272 (js_realm.hpp:935)
10  zinspector3                     0x0000000100721484 OpaqueJSValue const* realm::js::wrap<&(realm::js::RealmClass<realm::jsc::Types>::object_for_primary_key(OpaqueJSContext const*, OpaqueJSValue*, realm::js::Arguments<realm::jsc::Types>&, realm::js::... + 56 (jsc_class.hpp:989)
11  JavaScriptCore                  0x00000001bf843a0c long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*) + 420 (APICallbackFunction.h:63)
12  JavaScriptCore                  0x00000001bf7f8a88 llint_entry + 135240
13  JavaScriptCore                  0x00000001bf7f6118 llint_entry + 124632
14  JavaScriptCore                  0x00000001bf7f61c0 llint_entry + 124800
15  JavaScriptCore                  0x00000001bf7d77f8 vmEntryToJavaScript + 248
16  JavaScriptCore                  0x00000001bfd868c8 JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 444 (JITCodeInlines.h:38)
17  JavaScriptCore                  0x00000001bff6c348 JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 168 (CallData.cpp:59)
18  JavaScriptCore                  0x00000001bf858690 JSObjectCallAsFunction + 504 (JSObjectRef.cpp:738)
19  zinspector3                     0x000000010072725c realm::js::Function<realm::jsc::Types>::call(OpaqueJSContext const*, OpaqueJSValue* const&, OpaqueJSValue* const&, unsigned long, OpaqueJSValue const* const*) + 32 (jsc_function.hpp:29)
20  zinspector3                     0x000000010072725c realm::js::RealmClass<realm::jsc::Types>::write(OpaqueJSContext const*, OpaqueJSValue*, realm::js::Arguments<realm::jsc::Types>&, realm::js::ReturnValue<realm::jsc::Types>&) + 164 (js_realm.hpp:1078)
21  zinspector3                     0x00000001007216e4 OpaqueJSValue const* realm::js::wrap<&(realm::js::RealmClass<realm::jsc::Types>::write(OpaqueJSContext const*, OpaqueJSValue*, realm::js::Arguments<realm::jsc::Types>&, realm::js::ReturnValue<realm... + 56 (jsc_class.hpp:989)
22  JavaScriptCore                  0x00000001bf843a0c long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*) + 420 (APICallbackFunction.h:63)
23  JavaScriptCore                  0x00000001bf7f8a88 llint_entry + 135240
24  JavaScriptCore                  0x00000001bf7f6118 llint_entry + 124632
25  JavaScriptCore                  0x00000001bf7f61c0 llint_entry + 124800
26  JavaScriptCore                  0x00000001bf7f6118 llint_entry + 124632
27  JavaScriptCore                  0x00000001bf7f75f4 llint_entry + 129972
28  JavaScriptCore                  0x00000001bf7f6118 llint_entry + 124632
29  JavaScriptCore                  0x00000001bf7f61c0 llint_entry + 124800
30  JavaScriptCore                  0x00000001bf7f6118 llint_entry + 124632
31  JavaScriptCore                  0x00000001bf7d77f8 vmEntryToJavaScript + 248
32  JavaScriptCore                  0x00000001bfd868c8 JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 444 (JITCodeInlines.h:38)
33  JavaScriptCore                  0x00000001c0005158 JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*) + 712 (JSBoundFunction.cpp:63)
34  JavaScriptCore                  0x00000001bf7d7974 vmEntryToNative + 260
35  JavaScriptCore                  0x00000001bfd8691c JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 528 (Interpreter.cpp:900)
36  JavaScriptCore                  0x00000001bff6c348 JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 168 (CallData.cpp:59)
37  JavaScriptCore                  0x00000001bf858690 JSObjectCallAsFunction + 504 (JSObjectRef.cpp:738)
38  zinspector3                     0x00000001006af6a8 facebook::jsc::JSCRuntime::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long) + 172 (JSCRuntime.cpp:1208)
39  zinspector3                     0x00000001006b79e0 facebook::jsi::Function::call(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned long) const + 44 (jsi-inl.h:224)
40  zinspector3                     0x00000001006b79e0 facebook::jsi::Function::call(facebook::jsi::Runtime&, std::initializer_list<facebook::jsi::Value>) const + 44 (jsi-inl.h:229)
41  zinspector3                     0x00000001006b79e0 facebook::jsi::Value facebook::jsi::Function::call<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<c... + 244 (jsi-inl.h:237)
42  zinspector3                     0x00000001006b7840 facebook::react::JSIExecutor::callFunction(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, st... + 68 (JSIExecutor.cpp:217)
43  zinspector3                     0x00000001006b7840 decltype(std::__1::forward<facebook::react::JSIExecutor::callFunction(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std:... + 68 (type_traits:3545)
44  zinspector3                     0x00000001006b7840 void std::__1::__invoke_void_return_wrapper<void>::__call<facebook::react::JSIExecutor::callFunction(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, st... + 68 (__functional_base:348)
45  zinspector3                     0x00000001006b7840 std::__1::__function::__alloc_func<facebook::react::JSIExecutor::callFunction(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<ch... + 68 (functional:1546)
46  zinspector3                     0x00000001006b7840 std::__1::__function::__func<facebook::react::JSIExecutor::callFunction(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, st... + 96 (functional:1720)
47  zinspector3                     0x00000001005e1108 decltype(std::__1::forward<void (*&)(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)>(fp)(std::__1:... + 32 (type_traits:3545)
48  zinspector3                     0x00000001005e1108 void std::__1::__invoke_void_return_wrapper<void>::__call<void (*&)(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::alloca... + 72 (__functional_base:348)
49  zinspector3                     0x00000001006b5900 std::__1::__function::__value_func<void (std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)>::operator... + 32 (functional:1873)
50  zinspector3                     0x00000001006b5900 std::__1::function<void (std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)>::operator()(std::__1::fun... + 32 (functional:2548)
51  zinspector3                     0x00000001006b5900 facebook::react::JSIExecutor::callFunction(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, st... + 356 (JSIExecutor.cpp:215)
52  zinspector3                     0x00000001006abca4 std::__1::__function::__value_func<void (facebook::react::JSExecutor*)>::operator()(facebook::react::JSExecutor*&&) const + 24 (functional:1873)
53  zinspector3                     0x00000001006abca4 std::__1::function<void (facebook::react::JSExecutor*)>::operator()(facebook::react::JSExecutor*) const + 24 (functional:2548)
54  zinspector3                     0x00000001006abca4 facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>)::$_7::operator()() const + 48 (NativeToJsBridge.cpp:290)
55  zinspector3                     0x00000001006abca4 decltype(std::__1::forward<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>)::$_7&>(fp)()) std::__1::__invoke<facebook::react::NativeToJ... + 48 (type_traits:3545)
56  zinspector3                     0x00000001006abca4 void std::__1::__invoke_void_return_wrapper<void>::__call<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>)::$_7&>(facebook::react::Nati... + 48 (__functional_base:348)
57  zinspector3                     0x00000001006abca4 std::__1::__function::__alloc_func<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>)::$_7, std::__1::allocator<facebook::react::NativeTo... + 48 (functional:1546)
58  zinspector3                     0x00000001006abca4 std::__1::__function::__func<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>)::$_7, std::__1::allocator<facebook::react::NativeToJsBrid... + 60 (functional:1720)
59  zinspector3                     0x00000001005fd1f8 std::__1::__function::__value_func<void ()>::operator()() const + 20 (functional:1873)
60  zinspector3                     0x00000001005fd1f8 std::__1::function<void ()>::operator()() const + 20 (functional:2548)
61  zinspector3                     0x00000001005fd1f8 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) + 40 (RCTCxxUtils.mm:72)
62  zinspector3                     0x0000000100609944 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) + 24 (RCTMessageThread.mm:59)
63  CoreFoundation                  0x00000001b06aba4c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 20 (CFRunLoop.c:1774)
64  CoreFoundation                  0x00000001b06ab1d8 __CFRunLoopDoBlocks + 264 (CFRunLoop.c:1815)
65  CoreFoundation                  0x00000001b06a6318 __CFRunLoopRun + 772 (CFRunLoop.c:2880)
66  CoreFoundation                  0x00000001b06a5ce8 CFRunLoopRunSpecific + 424 (CFRunLoop.c:3192)
67  zinspector3                     0x00000001005f28e0 +[RCTCxxBridge runRunLoop] + 264 (RCTCxxBridge.mm:269)
68  Foundation                      0x00000001b0b17e20 __NSThread__start__ + 848 (NSThread.m:724)
69  libsystem_pthread.dylib         0x00000001b0443d98 _pthread_start + 156 (pthread.c:896)
70  libsystem_pthread.dylib         0x00000001b044774c thread_start + 8

Seeing that all previous stack-traces springs from defaultTimeoutInvoker, combined with the declared React Native version: v0.61.5.
I'm asking myself if this could be related to this RN fix _("apps crashing on iOS 13.x when running timer in the background")_, listed under iOS specific (for RN v0.62.0 changelog)?

@cristianoccazinsp It _could_ be that the errors we're seeing here, happens when the app is closed/goes to the background _AND_ is terminated prematurely (in context of RN).
I hate to recommend "just" updating RN, as it's usually not a trivial task - but in this case, perhaps an update would resolve the issue(s)?
We'll continue investigating, but are there a chance you could try updating RN to v0.62.0+?

@steffenagger I have updated to RN 0.62 a while ago and some of these crashes still happen (like the one from the most recent stack trace I've uploaded).

@cristianoccazinsp Okay, thanks. We'll keep investigating.

Hey guys, this wasn't a null pointer exception, but perhaps related somehow. For this crash, I noticed the user didn't really use the app, it was just started up, and without interacting a lot with it (30 seconds afterwards in the home screen of the app), the following crash occurred:

    /usr/lib/system/libsystem_platform.dylib __os_unfair_lock_recursive_abort
    /usr/lib/system/libsystem_platform.dylib __os_unfair_lock_lock_slow
    Frameworks/BackgroundTasks.framework/BackgroundTasks -[BGTask dealloc]
    /usr/lib/system/libsystem_blocks.dylib __Block_object_dispose
    /usr/lib/system/libsystem_blocks.dylib __Block_release
    Frameworks/BackgroundTasks.framework/BackgroundTasks -[BGTask _unsafe_setTaskCompletedWithSuccess:afterDelay:]
    Frameworks/BackgroundTasks.framework/BackgroundTasks -[BGTask _setTaskCompletedWithSuccess:actionsIfNotAlreadyCompleted:]
    zinspector3 realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    zinspector3 folly::detail::function::FunctionTraits<bool (folly::dynamic const&, folly::dynamic const&) const>::uninitCall(folly::detail::function::Data&, folly::dynamic const&, folly::dynamic const&)
    Frameworks/CoreFoundation.framework/CoreFoundation ___invoking___
    Frameworks/CoreFoundation.framework/CoreFoundation -[NSInvocation invoke]
    Frameworks/CoreFoundation.framework/CoreFoundation -[NSInvocation invokeWithTarget:]
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    zinspector3 facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    /usr/lib/system/libdispatch.dylib __dispatch_call_block_and_release
    /usr/lib/system/libdispatch.dylib __dispatch_client_callout
    /usr/lib/system/libdispatch.dylib __dispatch_lane_serial_drain
    /usr/lib/system/libdispatch.dylib __dispatch_lane_invoke
    /usr/lib/system/libdispatch.dylib __dispatch_workloop_worker_thread
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Hello everyone, for my part I also have this problem very often, in addition to what has been said
It happens to me sporadically but very often, I handle offline listings so I keep consulting queries
I have version 0.63.2,
And I use .tsx
and I invoke the queries in the componentdimount
I updated and I get the error

Hello, I've received plenty of errors, only iOS, after migrating realm from 3.4.2 to 6.1.5 and react-native from 0.62.2 to 0.63.3 (update both of them in an app release).

I just release my apps about 1 day and have received many complaints so it happens quite a lot.
And when the user encounters this issue, then his/her app will 100% crashes when visiting the same screen.
But not all users will run into this issue. I'm not sure how Bugsnag's sampling works, but we have ~1500 iOS daily active users and get about 70 crashes.

Also, some of our users have reported that sign out and sign in again can solve the issue.
Our app will do deleteAll to clean Realm DB after user signs out.

Here is the information, please kindly help @@
thank you

STACKTRACE:

EXC_BAD_ACCESS Attempted to dereference garbage pointer 0x8000000000000008. 
    /usr/lib/swift/libswiftCore.dylib _swift_isUniquelyReferenced_nonNull_native
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    Frameworks/Foundation.framework/Foundation _NSKeyValueNotifyObserver
    Frameworks/Foundation.framework/Foundation _NSKeyValueDidChange
    Frameworks/Foundation.framework/Foundation _NSKeyValueDidChangeWithPerThreadPendingNotifications
    Frameworks/AVFoundation.framework/AVFoundation -[AVPlayer setRate:withVolumeRampDuration:playImmediately:rateChangeReason:]
    Frameworks/AVFoundation.framework/AVFoundation -[AVPlayer setRate:]
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    Frameworks/CoreFoundation.framework/CoreFoundation ___invoking___
    Frameworks/CoreFoundation.framework/CoreFoundation -[NSInvocation invoke]
    Frameworks/CoreFoundation.framework/CoreFoundation -[NSInvocation invokeWithTarget:]
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    /usr/lib/system/libdispatch.dylib __dispatch_call_block_and_release
    /usr/lib/system/libdispatch.dylib __dispatch_client_callout
    /usr/lib/system/libdispatch.dylib __dispatch_lane_serial_drain
    /usr/lib/system/libdispatch.dylib __dispatch_lane_invoke
    /usr/lib/system/libdispatch.dylib __dispatch_workloop_worker_thread
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

THREAD

Thread 0
    /usr/lib/libobjc.A.dylib bool objc::DenseMapBase<objc::DenseMap<DisguisedPtr<objc_object>, objc::DenseMap<void const*, objc::ObjcAssociation, objc::DenseMapValueInfo<objc::ObjcAssociation>, objc::DenseMapInfo<void const*>, objc::detail::DenseMapPair<void const*, objc::ObjcAssociation> >, objc::DenseMapValueInfo<objc::DenseMap<void const*, objc::ObjcAssociation, objc::DenseMapValueInfo<objc::ObjcAssociation>, objc::DenseMapInfo<void const*>, objc::detail::DenseMapPair<void const*, objc::ObjcAssociation> > >, objc::DenseMapInfo<DisguisedPtr<objc_object> >, objc::detail::DenseMapPair<DisguisedPtr<objc_object>, objc::DenseMap<void const*, objc::ObjcAssociation, objc::DenseMapValueInfo<objc::ObjcAssociation>, objc::DenseMapInfo<void const*>, objc::detail::DenseMapPair<void const*, objc::ObjcAssociation> > > >, DisguisedPtr<objc_object>, objc::DenseMap<void const*, objc::ObjcAssociation, objc::DenseMapValueInfo<objc::ObjcAssociation>, objc::DenseMapInfo<void const*>, objc::detail::DenseMapPair<void const*, objc::ObjcAssociation> >, objc::DenseMapValueInfo<objc::DenseMap<void const*, objc::ObjcAssociation, objc::DenseMapValueInfo<objc::ObjcAssociation>, objc::DenseMapInfo<void const*>, objc::detail::DenseMapPair<void const*, objc::ObjcAssociation> > >, objc::DenseMapInfo<DisguisedPtr<objc_object> >, objc::detail::DenseMapPair<DisguisedPtr<objc_object>, objc::DenseMap<void const*, objc::ObjcAssociation, objc::DenseMapValueInfo<objc::ObjcAssociation>, objc::DenseMapInfo<void const*>, objc::detail::DenseMapPair<void const*, objc::ObjcAssociation> > > >::LookupBucketFor<DisguisedPtr<objc_object> >(DisguisedPtr<objc_object> const&, objc::detail::DenseMapPair<DisguisedPtr<objc_object>, objc::DenseMap<void const*, objc::ObjcAssociation, objc::DenseMapValueInfo<objc::ObjcAssociation>, objc::DenseMapInfo<void const*>, objc::detail::DenseMapPair<void const*, objc::ObjcAssociation> > > const*&) const
    /usr/lib/libobjc.A.dylib __object_remove_assocations
    /usr/lib/libobjc.A.dylib _objc_destructInstance
    /usr/lib/libobjc.A.dylib __objc_rootDealloc
    /usr/lib/system/libxpc.dylib -[OS_xpc_object dealloc]
    /usr/lib/system/libxpc.dylib __xpc_connection_call_reply_async
    /usr/lib/system/libdispatch.dylib __dispatch_client_callout3
    /usr/lib/system/libdispatch.dylib __dispatch_mach_msg_async_reply_invoke
    /usr/lib/system/libdispatch.dylib __dispatch_main_queue_callback_4CF
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    PrivateFrameworks/GraphicsServices.framework/GraphicsServices _GSEventRunModal
    PrivateFrameworks/UIKitCore.framework/UIKitCore _UIApplicationMain
    WORD UP _mh_execute_header
    /usr/lib/system/libdyld.dylib _start

Thread 1
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 2
    /usr/lib/system/libsystem_malloc.dylib _nanov2_allocate_from_block
    /usr/lib/system/libsystem_malloc.dylib _nanov2_allocate
    /usr/lib/system/libsystem_malloc.dylib _nanov2_calloc
    /usr/lib/system/libsystem_malloc.dylib _malloc_zone_calloc
    /usr/lib/system/libsystem_malloc.dylib _calloc
    /usr/lib/system/libdispatch.dylib __dispatch_calloc
    /usr/lib/system/libdispatch.dylib __dispatch_source_timer_create
    /usr/lib/system/libdispatch.dylib _dispatch_source_create
    /usr/lib/system/libdispatch.dylib _dispatch_after
    Frameworks/MediaPlayer.framework/MediaPlayer -[MPNowPlayingInfoCenter(NowPlayingInfo) _onQueue_pushNowPlayingInfoAndRetry:]
    /usr/lib/system/libdispatch.dylib __dispatch_call_block_and_release
    /usr/lib/system/libdispatch.dylib __dispatch_client_callout
    /usr/lib/system/libdispatch.dylib __dispatch_lane_serial_drain
    /usr/lib/system/libdispatch.dylib __dispatch_lane_invoke
    /usr/lib/system/libdispatch.dylib __dispatch_workloop_worker_thread
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 3
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 4
    /usr/lib/swift/libswiftCore.dylib _swift_isUniquelyReferenced_nonNull_native
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    Frameworks/Foundation.framework/Foundation _NSKeyValueNotifyObserver
    Frameworks/Foundation.framework/Foundation _NSKeyValueDidChange
    Frameworks/Foundation.framework/Foundation _NSKeyValueDidChangeWithPerThreadPendingNotifications
    Frameworks/AVFoundation.framework/AVFoundation -[AVPlayer setRate:withVolumeRampDuration:playImmediately:rateChangeReason:]
    Frameworks/AVFoundation.framework/AVFoundation -[AVPlayer setRate:]
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    Frameworks/CoreFoundation.framework/CoreFoundation ___invoking___
    Frameworks/CoreFoundation.framework/CoreFoundation -[NSInvocation invoke]
    Frameworks/CoreFoundation.framework/CoreFoundation -[NSInvocation invokeWithTarget:]
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    /usr/lib/system/libdispatch.dylib __dispatch_call_block_and_release
    /usr/lib/system/libdispatch.dylib __dispatch_client_callout
    /usr/lib/system/libdispatch.dylib __dispatch_lane_serial_drain
    /usr/lib/system/libdispatch.dylib __dispatch_lane_invoke
    /usr/lib/system/libdispatch.dylib __dispatch_workloop_worker_thread
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 5
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopServiceMachPort
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    Frameworks/Foundation.framework/Foundation -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
    Frameworks/Foundation.framework/Foundation -[NSRunLoop(NSRunLoop) runUntilDate:]
    PrivateFrameworks/UIKitCore.framework/UIKitCore -[UIEventFetcher threadMain]
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 6
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopServiceMachPort
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 7
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    /usr/lib/libc++.1.dylib std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore void std::__1::condition_variable_any::wait<std::__1::unique_lock<bmalloc::Mutex> >(std::__1::unique_lock<bmalloc::Mutex>&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bmalloc::Scavenger::threadRunLoop()
    Frameworks/JavaScriptCore.framework/JavaScriptCore bmalloc::Scavenger::threadEntryPoint(bmalloc::Scavenger*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*> >(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 8
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 9
    /usr/lib/system/libsystem_kernel.dylib _semaphore_timedwait_trap
    /usr/lib/system/libdispatch.dylib __dispatch_sema4_timedwait
    /usr/lib/system/libdispatch.dylib __dispatch_semaphore_wait_slow
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    /usr/lib/system/libdispatch.dylib __dispatch_call_block_and_release
    /usr/lib/system/libdispatch.dylib __dispatch_client_callout
    /usr/lib/system/libdispatch.dylib __dispatch_queue_override_invoke
    /usr/lib/system/libdispatch.dylib __dispatch_root_queue_drain
    /usr/lib/system/libdispatch.dylib __dispatch_worker_thread2
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 10
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 11
    /usr/lib/system/libsystem_kernel.dylib ___psynch_mutexwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_mutex_firstfit_lock_wait
    /usr/lib/system/libsystem_pthread.dylib __pthread_mutex_firstfit_lock_slow
    Frameworks/MediaToolbox.framework/MediaToolbox _playerasync_runImmediateCommand
    Frameworks/MediaToolbox.framework/MediaToolbox _itemasync_CopyProperty
    Frameworks/AVFoundation.framework/AVFoundation +[AVPlayerItem _copyTimebaseFromFigPlaybackItem:]
    Frameworks/AVFoundation.framework/AVFoundation ___31-[AVPlayerItem _updateTimebase]_block_invoke
    /usr/lib/system/libdispatch.dylib __dispatch_call_block_and_release
    /usr/lib/system/libdispatch.dylib __dispatch_client_callout
    /usr/lib/system/libdispatch.dylib __dispatch_lane_serial_drain
    /usr/lib/system/libdispatch.dylib __dispatch_lane_invoke
    /usr/lib/system/libdispatch.dylib __dispatch_workloop_worker_thread
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 12

Thread 13
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopServiceMachPort
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    Frameworks/CFNetwork.framework/CFNetwork 0x1836e2eb8 (-0x22b80000 + 7082487480)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 14
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ThreadCondition::timedWait(WTF::Mutex&, WTF::WallTime)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 15
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ThreadCondition::timedWait(WTF::Mutex&, WTF::WallTime)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 16
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ThreadCondition::timedWait(WTF::Mutex&, WTF::WallTime)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 17
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ThreadCondition::timedWait(WTF::Mutex&, WTF::WallTime)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 18
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ThreadCondition::timedWait(WTF::Mutex&, WTF::WallTime)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 19
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ThreadCondition::timedWait(WTF::Mutex&, WTF::WallTime)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 20
    /usr/lib/system/libsystem_kernel.dylib _kevent
    WORD UP realm::util::FunctionRef<void (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<void (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 21
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    /usr/lib/system/libsystem_kernel.dylib _thread_suspend
    WORD UP __cxa_throw
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 22

Thread 23
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopServiceMachPort
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    Frameworks/AVFoundation.framework/Frameworks/AVFAudio.framework/AVFAudio GenericRunLoopThread::Entry(void*)
    Frameworks/AVFoundation.framework/Frameworks/AVFAudio.framework/AVFAudio CAPThread::Entry(CAPThread*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 24
    /usr/lib/system/libsystem_kernel.dylib _select$DARWIN_EXTSN
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFSocketManager
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 25
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 26
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 27
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 28

Thread 29

Thread 30
    /usr/lib/system/libsystem_kernel.dylib _semaphore_timedwait_trap
    /usr/lib/system/libdispatch.dylib __dispatch_sema4_timedwait
    /usr/lib/system/libdispatch.dylib __dispatch_semaphore_wait_slow
    /usr/lib/system/libdispatch.dylib __dispatch_worker_thread
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 31
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    /usr/lib/system/libdispatch.dylib __dispatch_mach_send_and_wait_for_reply
    /usr/lib/system/libdispatch.dylib _dispatch_mach_send_with_result_and_wait_for_reply
    /usr/lib/system/libxpc.dylib _xpc_connection_send_message_with_reply_sync
    Frameworks/CoreMedia.framework/CoreMedia _FigXPCRemoteClientSendSyncMessageCreatingReply
    Frameworks/CoreMedia.framework/CoreMedia _FigXPCSendStdSetPropertyMessage
    Frameworks/MediaToolbox.framework/MediaToolbox _remoteXPCItem_SetProperty
    Frameworks/MediaToolbox.framework/MediaToolbox _playerasync_runOneCommand
    Frameworks/MediaToolbox.framework/MediaToolbox _playerasync_runAsynchronousCommandOnQueue
    /usr/lib/system/libdispatch.dylib __dispatch_client_callout
    /usr/lib/system/libdispatch.dylib __dispatch_lane_serial_drain
    /usr/lib/system/libdispatch.dylib __dispatch_lane_invoke
    /usr/lib/system/libdispatch.dylib __dispatch_root_queue_drain
    /usr/lib/system/libdispatch.dylib __dispatch_worker_thread
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 32
    /usr/lib/system/libsystem_kernel.dylib _semaphore_timedwait_trap
    /usr/lib/system/libdispatch.dylib __dispatch_sema4_timedwait
    /usr/lib/system/libdispatch.dylib __dispatch_semaphore_wait_slow
    /usr/lib/system/libdispatch.dylib __dispatch_worker_thread
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

And it seems not relates to low memory, here are some data of memory auto collected by bugsnags of crashed apps.

freeMemory 249.4 MB
freeMemory 166.1 MB
freeMemory 1.0 GB
freeMemory 41.9 MB
freeMemory 876.4 MB

And this type of exception emerges together after Realm library upgrade. I'm not sure if it relates.

    /usr/lib/system/libsystem_kernel.dylib ___pthread_kill
    /usr/lib/system/libsystem_pthread.dylib _pthread_kill
    /usr/lib/system/libsystem_c.dylib _abort
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP bool realm::Array::find<realm::Less, (realm::Action)0, 64ul>(long long, unsigned long, unsigned long, unsigned long, realm::QueryState<long long>*) const
    WORD UP bool realm::Array::find<realm::Less, (realm::Action)0, 64ul>(long long, unsigned long, unsigned long, unsigned long, realm::QueryState<long long>*) const
    WORD UP realm::Obj& realm::Obj::set<realm::Timestamp>(realm::ColKey, realm::Timestamp, bool)
    WORD UP realm::StringData realm::ConstObj::get<realm::StringData>(realm::ColKey) const
    WORD UP realm::Obj& realm::Obj::set<realm::Timestamp>(realm::ColKey, realm::Timestamp, bool)
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::Optional<realm::Obj> realm::Results::first<realm::Obj>()
    WORD UP realm::Obj realm::Results::get<realm::Obj>(unsigned long)
    WORD UP realm::Obj realm::Results::get<realm::Obj>(unsigned long)
    WORD UP OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const**)
    WORD UP OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const**)
    WORD UP OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::JSCallbackObject<JSC::JSNonFinalObject>::getOwnPropertySlot(JSC::JSObject*, JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::JSCallbackObject<JSC::JSNonFinalObject>::getOwnPropertySlotByIndex(JSC::JSObject*, JSC::JSGlobalObject*, unsigned int, JSC::PropertySlot&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::JSObject::hasPropertyGeneric(JSC::JSGlobalObject*, unsigned int, JSC::PropertySlot::InternalMethodType) const
    Frameworks/JavaScriptCore.framework/JavaScriptCore _slow_path_in_by_val
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopDoBlocks
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

THREAD

Thread 0
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopServiceMachPort
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    PrivateFrameworks/GraphicsServices.framework/GraphicsServices _GSEventRunModal
    PrivateFrameworks/UIKitCore.framework/UIKitCore -[UIApplication _run]
    PrivateFrameworks/UIKitCore.framework/UIKitCore _UIApplicationMain
    WORD UP _mh_execute_header
    /usr/lib/system/libdyld.dylib _start

Thread 1
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 2
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 3
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 4
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 5
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopServiceMachPort
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    Frameworks/Foundation.framework/Foundation -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
    Frameworks/Foundation.framework/Foundation -[NSRunLoop(NSRunLoop) runUntilDate:]
    PrivateFrameworks/UIKitCore.framework/UIKitCore -[UIEventFetcher threadMain]
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 6
    /usr/lib/system/libsystem_kernel.dylib ___pthread_kill
    /usr/lib/system/libsystem_pthread.dylib _pthread_kill
    /usr/lib/system/libsystem_c.dylib _abort
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP bool realm::Array::find<realm::Less, (realm::Action)0, 64ul>(long long, unsigned long, unsigned long, unsigned long, realm::QueryState<long long>*) const
    WORD UP bool realm::Array::find<realm::Less, (realm::Action)0, 64ul>(long long, unsigned long, unsigned long, unsigned long, realm::QueryState<long long>*) const
    WORD UP realm::Obj& realm::Obj::set<realm::Timestamp>(realm::ColKey, realm::Timestamp, bool)
    WORD UP realm::StringData realm::ConstObj::get<realm::StringData>(realm::ColKey) const
    WORD UP realm::Obj& realm::Obj::set<realm::Timestamp>(realm::ColKey, realm::Timestamp, bool)
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::util::FunctionRef<unsigned long (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::Timestamp>::erase(unsigned long)::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::Optional<realm::Obj> realm::Results::first<realm::Obj>()
    WORD UP realm::Obj realm::Results::get<realm::Obj>(unsigned long)
    WORD UP realm::Obj realm::Results::get<realm::Obj>(unsigned long)
    WORD UP OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const**)
    WORD UP OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const**)
    WORD UP OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::JSCallbackObject<JSC::JSNonFinalObject>::getOwnPropertySlot(JSC::JSObject*, JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::JSCallbackObject<JSC::JSNonFinalObject>::getOwnPropertySlotByIndex(JSC::JSObject*, JSC::JSGlobalObject*, unsigned int, JSC::PropertySlot&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::JSObject::hasPropertyGeneric(JSC::JSGlobalObject*, unsigned int, JSC::PropertySlot::InternalMethodType) const
    Frameworks/JavaScriptCore.framework/JavaScriptCore _slow_path_in_by_val
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopDoBlocks
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    WORD UP facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 7
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    /usr/lib/libc++.1.dylib std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore void std::__1::condition_variable_any::wait<std::__1::unique_lock<bmalloc::Mutex> >(std::__1::unique_lock<bmalloc::Mutex>&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bmalloc::Scavenger::threadRunLoop()
    Frameworks/JavaScriptCore.framework/JavaScriptCore bmalloc::Scavenger::threadEntryPoint(bmalloc::Scavenger*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*> >(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 8
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 9
    /usr/lib/system/libsystem_kernel.dylib _semaphore_timedwait_trap
    /usr/lib/system/libdispatch.dylib __dispatch_sema4_timedwait
    /usr/lib/system/libdispatch.dylib __dispatch_semaphore_wait_slow
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    /usr/lib/system/libdispatch.dylib __dispatch_call_block_and_release
    /usr/lib/system/libdispatch.dylib __dispatch_client_callout
    /usr/lib/system/libdispatch.dylib __dispatch_queue_override_invoke
    /usr/lib/system/libdispatch.dylib __dispatch_root_queue_drain
    /usr/lib/system/libdispatch.dylib __dispatch_worker_thread2
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 10
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 11
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 12
    /usr/lib/system/libsystem_kernel.dylib ___guarded_open_dprotected_np
    /usr/lib/system/libsystem_kernel.dylib _guarded_open_dprotected_np
    /usr/lib/libsqlite3.dylib _sqlite3_sourceid
    /usr/lib/libsqlite3.dylib _sqlite3_snprintf
    /usr/lib/libsqlite3.dylib _sqlite3_free_table
    /usr/lib/libsqlite3.dylib _sqlite3_free_table
    /usr/lib/libsqlite3.dylib _sqlite3_free_table
    /usr/lib/libsqlite3.dylib _sqlite3_step
    /usr/lib/libsqlite3.dylib _sqlite3_step
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    /usr/lib/system/libdispatch.dylib __dispatch_call_block_and_release
    /usr/lib/system/libdispatch.dylib __dispatch_client_callout
    /usr/lib/system/libdispatch.dylib __dispatch_lane_serial_drain
    /usr/lib/system/libdispatch.dylib __dispatch_lane_invoke
    /usr/lib/system/libdispatch.dylib __dispatch_workloop_worker_thread
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 13
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    WORD UP realm::ObjKey realm::Table::find_first<realm::util::Optional<long long> >(realm::ColKey, realm::util::Optional<long long>) const
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 14
    /usr/lib/system/libsystem_kernel.dylib ___workq_kernreturn
    /usr/lib/system/libsystem_pthread.dylib __pthread_wqthread

Thread 15
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 16
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 17
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 18
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 19
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 20
    /usr/lib/system/libsystem_kernel.dylib ___psynch_cvwait
    /usr/lib/system/libsystem_pthread.dylib __pthread_cond_wait
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call()
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore WTF::wtfThreadEntryPoint(void*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 21
    /usr/lib/system/libsystem_kernel.dylib _kevent
    WORD UP realm::util::FunctionRef<void (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    WORD UP realm::util::FunctionRef<void (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 22
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopServiceMachPort
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    Frameworks/CFNetwork.framework/CFNetwork __CFURLStorageSessionCopyCache
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 23
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    /usr/lib/system/libsystem_kernel.dylib _thread_suspend
    WORD UP __cxa_throw
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 24
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    WORD UP __cxa_throw
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 25
    /usr/lib/system/libsystem_kernel.dylib _mach_msg_trap
    /usr/lib/system/libsystem_kernel.dylib _mach_msg
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopServiceMachPort
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    PrivateFrameworks/AudioSession.framework/AudioSession GenericRunLoopThread::Entry(void*)
    PrivateFrameworks/AudioSession.framework/AudioSession CAPThread::Entry(CAPThread*)
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

Thread 26
    /usr/lib/system/libsystem_kernel.dylib _select$DARWIN_EXTSN
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFSocketManager
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

@CoSNaYe Since an upgrade of Realm Core is involved, I have asked @finnschiermer and @jedelbo to take a look.

Just adding to this thread, that I've started to see this in a client's React Native app since updating to Realm JS 10.0.1, alongside react-native @ 0.63.3.

The crash logs basically match the ones above, and Sentry & Firebase (along with internal logs) are reporting that they're always occurring whilst the app isn't active. Happy to help with testing fixes, let me know if that'd be useful!

New crash with 10.0.x versions, but mostly related:

Hardware Model:     iPhone12,1
Process:            zinspector3
Identifier:         com.zinspector.zinspector3
Version:            3.1.39
Role:               Background
OS Version:         iOS 14.2


std::__1::system_error: mutex lock failed: Invalid argument

0  libc++.1.dylib          std::__1::__throw_system_error(int, char const*)
1  libc++.1.dylib          std::__1::mutex::lock()
2  zinspector3             bool realm::Array::find<realm::Less, (realm::Action)0, 64ul>(long long, unsigned long, unsigned long, unsigned long, realm::QueryState<long long>*) const (zinspector3)
3  zinspector3             bool realm::Array::find<realm::Less, (realm::Action)0, 64ul>(long long, unsigned long, unsigned long, unsigned long, realm::QueryState<long long>*) const (zinspector3)
4  zinspector3             bool realm::Array::find<realm::Less, (realm::Action)0, 64ul>(long long, unsigned long, unsigned long, unsigned long, realm::QueryState<long long>*) const (zinspector3)
5  zinspector3             bool realm::Array::find<realm::Less, (realm::Action)0, 64ul>(long long, unsigned long, unsigned long, unsigned long, realm::QueryState<long long>*) const (zinspector3)
6  zinspector3             bool realm::Array::find<realm::Less, (realm::Action)0, 64ul>(long long, unsigned long, unsigned long, unsigned long, realm::QueryState<long long>*) const (zinspector3)
7  zinspector3             unsigned long realm::Results::index_of<realm::util::Optional<realm::ObjectId> >(realm::util::Optional<realm::ObjectId> const&) (zinspector3)
8  zinspector3             realm::util::FunctionRef<bool (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::util::Optional<realm::ObjectId> >::find_first(realm::util::Optional<realm::ObjectId>) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::util::Optional<realm::ObjectId> >::find_first(realm::util::Optional<realm::ObjectId>) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::util::Optional<realm::ObjectId> >::find_first(realm::util::Optional<realm::ObjectId>) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long) (zinspector3)
9  zinspector3             realm::util::FunctionRef<bool (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::util::Optional<realm::ObjectId> >::find_first(realm::util::Optional<realm::ObjectId>) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::util::Optional<realm::ObjectId> >::find_first(realm::util::Optional<realm::ObjectId>) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::util::Optional<realm::ObjectId> >::find_first(realm::util::Optional<realm::ObjectId>) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long) (zinspector3)
10 zinspector3             realm::util::FunctionRef<bool (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::util::Optional<realm::ObjectId> >::find_first(realm::util::Optional<realm::ObjectId>) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::util::Optional<realm::ObjectId> >::find_first(realm::util::Optional<realm::ObjectId>) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::util::Optional<realm::ObjectId> >::find_first(realm::util::Optional<realm::ObjectId>) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long) (zinspector3)
11 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
12 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
13 libsystem_pthread.dylib __pthread_start
14 libsystem_pthread.dylib _thread_start

Similar problem as well

realm::jsc::ObjectWrap >::set_readonly_property(OpaqueJSContext const, OpaqueJSValue, OpaqueJSString, OpaqueJSValue const, OpaqueJSValue const**)

I keep seeing iOS crashes with similar stack traces, and they all seem to happen with very little free memory (~45mb reported by the crash analytics tool). Not sure how easy it would be to debug a possible memory leak within the C++ or Objective C Realm's code, or even in the non Realm code. I've tried to profile the app for a while and didn't observe any memory leak or anything that would cause the app to end up with so little memory.

Here's another stack trace:

EXC_BAD_ACCESS Attempted to dereference garbage pointer 0x8. 
    Tenant Move-In realm::jsc::ObjectWrap<realm::js::ObservableClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_is_partial_realm>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::object_for_primary_key>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_is_partial_realm>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**)
    Tenant Move-In OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::write>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
    Frameworks/JavaScriptCore.framework/JavaScriptCore long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _llint_entry
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToJavaScript
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _vmEntryToNative
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    Frameworks/JavaScriptCore.framework/JavaScriptCore _JSObjectCallAsFunction
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopDoBlocks
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    Tenant Move-In facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>)
    Frameworks/Foundation.framework/Foundation ___NSThread__start__
    /usr/lib/system/libsystem_pthread.dylib __pthread_start

@enigmablue @cristianoccazinsp @ryanbourneuk @feliperoan @CoSNaYe Have any of you tried this on the newer Realm-JS v10?
We have made some changes to the way open realms are cached in v10, and the stack traces indicate that this may be related.

@fronck with "realm": "10.1.1", my client is still seeing the same crashes. I do see however that there are some more recent releases available, so I'll check those out and see if the issues still occur.

mm my realm is "realm": "^10.0.1",

will check as well

I've been using v10 for a good while now and I still see these crashes happen randomly. We haven't got many complains, so we are mostly ignoring these errors for now, but they are very annoying since they keep spamming our crash reporting tool.

@cristianoccazinsp I assume you are creating other issues for them? That would be needed to help fix them of course.

@bmunkholm I really haven't since they are always similar to this and the other 4 issues I also opened on the first comment. If it is of any help, I can start gathering all the crash logs / stack traces I have been getting for the past month or so, and open a new issue for v10. But again, they are all very similar crashes due to null pointers here and there.

me too

image

image

Here are my stack traces for v10 (10.1.2 and 10.1.3):

CrashReporter Key:  06c2a452b89c7a27c48f4c0c06340e46f5dd4d5f
Hardware Model:     iPhone12,8
Process:            zinspector3
Identifier:         com.zinspector.zinspector3
Version:            3.1.45
Role:               Background
OS Version:         iOS 14.3
Exception Type:     EXC_BAD_ACCESS 
Exception Subtype:  KERN_INVALID_ADDRESS


EXC_BAD_ACCESS: Attempted to dereference garbage pointer 0x10.

0  JavaScriptCore          bool JSC::symbolTableGet<JSC::JSGlobalObject>(JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&)
1  JavaScriptCore          JSC::JSObject::get(JSC::JSGlobalObject*, JSC::PropertyName) const
2  JavaScriptCore          _JSObjectGetProperty
3  zinspector3             realm::jsc::ObjectWrap<realm::js::SessionClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**) (zinspector3)
4  zinspector3             realm::jsc::ObjectWrap<realm::js::SessionClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**) (zinspector3)
5  zinspector3             realm::util::FunctionRef<void (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long) (zinspector3)
6  zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const**) (zinspector3)
7  zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::sorted>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) (zinspector3)
8  JavaScriptCore          long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
9  JavaScriptCore          _llint_entry
10 JavaScriptCore          _llint_entry
11 JavaScriptCore          _llint_entry
12 JavaScriptCore          _llint_entry
13 JavaScriptCore          _llint_entry
14 JavaScriptCore          _llint_entry
15 JavaScriptCore          _llint_entry
16 JavaScriptCore          _llint_entry
17 JavaScriptCore          _llint_entry
18 JavaScriptCore          _vmEntryToJavaScript
19 JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
20 JavaScriptCore          JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
21 JavaScriptCore          _vmEntryToNative
22 JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
23 JavaScriptCore          JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
24 JavaScriptCore          _JSObjectCallAsFunction
25 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
26 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
27 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
28 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
29 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
30 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
31 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
32 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
33 CoreFoundation          ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
34 CoreFoundation          ___CFRunLoopDoBlocks
35 CoreFoundation          ___CFRunLoopRun
36 CoreFoundation          _CFRunLoopRunSpecific
37 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
38 Foundation              ___NSThread__start__
39 libsystem_pthread.dylib __pthread_start
CrashReporter Key:  d3699468d40cbe9d6d359e257007c97cf2fee001
Hardware Model:     iPhone8,1
Process:            zinspector3
Identifier:         com.zinspector.zinspector3
Version:            3.1.45
Role:               Background
OS Version:         iOS 14.3
Exception Type:     EXC_BAD_ACCESS 
Exception Subtype:  KERN_INVALID_ADDRESS


EXC_BAD_ACCESS: Attempted to dereference null pointer.

0  zinspector3             realm::jsc::ObjectWrap<realm::js::ObservableClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**) (zinspector3)
1  zinspector3             bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**) (zinspector3)
2  zinspector3             bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**) (zinspector3)
3  zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_sync_session>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**) (zinspector3)
4  zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::object_for_primary_key>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) (zinspector3)
5  JavaScriptCore          long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
6  JavaScriptCore          _llint_entry
7  JavaScriptCore          _llint_entry
8  JavaScriptCore          _llint_entry
9  JavaScriptCore          _vmEntryToJavaScript
10 JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
11 JavaScriptCore          JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
12 JavaScriptCore          _JSObjectCallAsFunction
13 zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_sync_session>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**) (zinspector3)
14 zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::write>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) (zinspector3)
15 JavaScriptCore          long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
16 JavaScriptCore          _llint_entry
17 JavaScriptCore          _llint_entry
18 JavaScriptCore          _llint_entry
19 JavaScriptCore          _llint_entry
20 JavaScriptCore          _llint_entry
21 JavaScriptCore          _llint_entry
22 JavaScriptCore          _llint_entry
23 JavaScriptCore          _llint_entry
24 JavaScriptCore          _vmEntryToJavaScript
25 JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
26 JavaScriptCore          JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
27 JavaScriptCore          _vmEntryToNative
28 JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
29 JavaScriptCore          JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
30 JavaScriptCore          _JSObjectCallAsFunction
31 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
32 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
33 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
34 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
35 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
36 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
37 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
38 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
39 CoreFoundation          ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
40 CoreFoundation          ___CFRunLoopDoBlocks
41 CoreFoundation          ___CFRunLoopRun
42 CoreFoundation          _CFRunLoopRunSpecific
43 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
44 Foundation              ___NSThread__start__
45 libsystem_pthread.dylib __pthread_start
CrashReporter Key:  acccf142f57af5fc9c51f8d7764032039ecf9e4b
Hardware Model:     iPad7,6
Process:            zinspector3
Identifier:         com.zinspector.zinspector3
Version:            3.1.39
Role:               Background
OS Version:         iOS 13.7
Exception Type:     EXC_BAD_ACCESS 
Exception Subtype:  KERN_INVALID_ADDRESS


EXC_BAD_ACCESS: Attempted to dereference garbage pointer 0x8.

0  zinspector3             realm::jsc::ObjectWrap<realm::js::ObservableClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**) (zinspector3)
1  zinspector3             bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**) (zinspector3)
2  zinspector3             bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**) (zinspector3)
3  zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_sync_session>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**) (zinspector3)
4  zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::object_for_primary_key>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) (zinspector3)
5  JavaScriptCore          long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
6  JavaScriptCore          _llint_entry
7  JavaScriptCore          _llint_entry
8  JavaScriptCore          _llint_entry
9  JavaScriptCore          _vmEntryToJavaScript
10 JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
11 JavaScriptCore          JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
12 JavaScriptCore          _JSObjectCallAsFunction
13 zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_sync_session>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**) (zinspector3)
14 zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::write>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) (zinspector3)
15 JavaScriptCore          long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
16 JavaScriptCore          _llint_entry
17 JavaScriptCore          _llint_entry
18 JavaScriptCore          _llint_entry
19 JavaScriptCore          _llint_entry
20 JavaScriptCore          _llint_entry
21 JavaScriptCore          _llint_entry
22 JavaScriptCore          _llint_entry
23 JavaScriptCore          _llint_entry
24 JavaScriptCore          _vmEntryToJavaScript
25 JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
26 JavaScriptCore          JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
27 JavaScriptCore          _vmEntryToNative
28 JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
29 JavaScriptCore          JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
30 JavaScriptCore          _JSObjectCallAsFunction
31 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
32 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
33 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
34 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
35 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
36 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
37 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
38 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
39 CoreFoundation          ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
40 CoreFoundation          ___CFRunLoopDoBlocks
41 CoreFoundation          ___CFRunLoopRun
42 CoreFoundation          _CFRunLoopRunSpecific
43 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
44 Foundation              ___NSThread__start__
45 libsystem_pthread.dylib __pthread_start

This is a new one from 10.1.4, recent update:

CrashReporter Key:  d5bd347a9cd6a077a0a30ed1412220009a862b03
Hardware Model:     iPhone13,3
Process:            zinspector3
Identifier:         com.zinspector.zinspector3
Version:            3.1.50
Role:               Background
OS Version:         iOS 14.3
Exception Type:     EXC_BAD_ACCESS 
Exception Subtype:  KERN_INVALID_ADDRESS


EXC_BAD_ACCESS: Attempted to dereference garbage pointer 0x10.

0  JavaScriptCore          bool JSC::symbolTableGet<JSC::JSGlobalObject>(JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&)
1  JavaScriptCore          JSC::JSObject::get(JSC::JSGlobalObject*, JSC::PropertyName) const
2  JavaScriptCore          _JSObjectGetProperty
3  zinspector3             realm::jsc::ObjectWrap<realm::js::SessionClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**) (zinspector3)
4  zinspector3             realm::jsc::ObjectWrap<realm::js::SessionClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**) (zinspector3)
5  zinspector3             realm::util::FunctionRef<void (realm::BPlusTreeNode*, unsigned long)>::FunctionRef<realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&>(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&)::{lambda(void*, realm::BPlusTreeNode*, unsigned long)#1}::__invoke(realm::BPlusTree<realm::ObjKey>::get(unsigned long) const::{lambda(realm::BPlusTreeNode*, unsigned long)#1}&, realm::BPlusTreeNode*, unsigned long) (zinspector3)
6  zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::get_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const**) (zinspector3)
7  zinspector3             OpaqueJSValue const* realm::js::wrap<&realm::js::ResultsClass<realm::jsc::Types>::sorted>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) (zinspector3)
8  JavaScriptCore          long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
9  JavaScriptCore          _llint_entry
10 JavaScriptCore          _llint_entry
11 JavaScriptCore          _llint_entry
12 JavaScriptCore          _llint_entry
13 JavaScriptCore          _llint_entry
14 JavaScriptCore          _llint_entry
15 JavaScriptCore          _llint_entry
16 JavaScriptCore          _llint_entry
17 JavaScriptCore          _llint_entry
18 JavaScriptCore          _vmEntryToJavaScript
19 JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
20 JavaScriptCore          JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
21 JavaScriptCore          _vmEntryToNative
22 JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
23 JavaScriptCore          JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
24 JavaScriptCore          _JSObjectCallAsFunction
25 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
26 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
27 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
28 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
29 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
30 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
31 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
32 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
33 CoreFoundation          ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
34 CoreFoundation          ___CFRunLoopDoBlocks
35 CoreFoundation          ___CFRunLoopRun
36 CoreFoundation          _CFRunLoopRunSpecific
37 zinspector3             facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (zinspector3)
38 Foundation              ___NSThread__start__
39 libsystem_pthread.dylib __pthread_start

image

@bmunkholm about the stack trace I've just posted above. After further research, looks like this crash is quite new and wasn't seen in any previous versions (it is either realm 10.1.3 or 10.1.4)

@cristianoccazinsp

The stacktrace is a bit confusing since it looks like you are using sync: realm::jsc::ObjectWrap<realm::js::SessionClass<realm::jsc::Types> >, and as I recall, you are not using sync.

Moreover, do you observe the crashes on Android?

@kneth I'm definitely not using sync. Also, no, I am only seeing this on iOS. Lastly, the same crash occurred to the same user twice already in less than 1 day, so it is also that happens "frequently".

I'm sorry I can't get a more detailed stack trace.

Hey @kneth, just to dive in here, I'm also seeing crash logs similar to @cristianoccazinsp's most recent one - only on iOS and not using sync. Would it help for me to also upload an example? Another note, is that Sentry (and our own internal logging systems) show that the user has put the app in the background prior to the crash occurring. Might be related?

put the app in the background

I think it is actually an important observation. When you bring back an app from the background, the (encrypted) file system might not be ready so quickly. And since Realm instances are tied to Realm files (using mmap()), you might be accessing something not ready.

@kneth Interesting! We had a suspicion internally that something like that would be the cause. We鈥檝e been trying to guard against it at the JS layer by observing app state changes (and we only access realm from a wrapper, rather than multiple points in the codebase, so there's only one point to guard against), but I presume this is something that鈥檒l need to be handled within Realm itself? Would you be able to advice on any potential remedies, for until a fix for this is released?

@kneth if that was the case, shouldn't the errors be much more "friendlier" or reveal such issue? Also, shouldn't the crash be much more reproducible?

Reading from here https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/encrypting_your_app_s_files?language=objc , which encryption level do you think Realm files use? My app works in background, and realm works in background just fine (most of the time at least), so it is either Complete unless open or Complete until first user authentication.

Here's another one, no background it seems, or right after getting into background.

CrashReporter Key:  d2b05f2a7bddad8344d79bca0c228496c066504b
Hardware Model:     iPhone10,1
Process:            tmi3
Identifier:         com.tenantmovein.tmi3
Version:            3.0.32
Role:               Background
OS Version:         iOS 14.4
Exception Type:     EXC_BAD_ACCESS 
Exception Subtype:  KERN_INVALID_ADDRESS


EXC_BAD_ACCESS: Attempted to dereference null pointer.

0   tmi3                    realm::jsc::ObjectWrap<realm::js::ObservableClass<realm::jsc::Types> >::set_readonly_property(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const*, OpaqueJSValue const**) (tmi3)
1   tmi3                    bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**) (tmi3)
2   tmi3                    bool realm::js::wrap<&realm::js::ListClass<realm::jsc::Types>::set_index>(OpaqueJSContext const*, OpaqueJSValue*, unsigned int, OpaqueJSValue const*, OpaqueJSValue const**) (tmi3)
3   tmi3                    OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_sync_session>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**) (tmi3)
4   tmi3                    OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::object_for_primary_key>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) (tmi3)
5   JavaScriptCore          long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
6   JavaScriptCore          _llint_entry
7   JavaScriptCore          _llint_entry
8   JavaScriptCore          _llint_entry
9   JavaScriptCore          _vmEntryToJavaScript
10  JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
11  JavaScriptCore          JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
12  JavaScriptCore          _JSObjectCallAsFunction
13  tmi3                    OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::get_sync_session>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSString*, OpaqueJSValue const**) (tmi3)
14  tmi3                    OpaqueJSValue const* realm::js::wrap<&realm::js::RealmClass<realm::jsc::Types>::write>(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) (tmi3)
15  JavaScriptCore          long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::JSGlobalObject*, JSC::CallFrame*)
16  JavaScriptCore          _llint_entry
17  JavaScriptCore          _llint_entry
18  JavaScriptCore          _llint_entry
19  JavaScriptCore          _llint_entry
20  JavaScriptCore          _llint_entry
21  JavaScriptCore          _llint_entry
22  JavaScriptCore          _llint_entry
23  JavaScriptCore          _llint_entry
24  JavaScriptCore          _llint_entry
25  JavaScriptCore          _llint_entry
26  JavaScriptCore          _llint_entry
27  JavaScriptCore          _llint_entry
28  JavaScriptCore          _llint_entry
29  JavaScriptCore          _llint_entry
30  JavaScriptCore          _llint_entry
31  JavaScriptCore          _llint_entry
32  JavaScriptCore          _llint_entry
33  JavaScriptCore          _llint_entry
34  JavaScriptCore          _llint_entry
35  JavaScriptCore          _llint_entry
36  JavaScriptCore          _llint_entry
37  JavaScriptCore          _llint_entry
38  JavaScriptCore          _llint_entry
39  JavaScriptCore          _llint_entry
40  JavaScriptCore          _llint_entry
41  JavaScriptCore          _llint_entry
42  JavaScriptCore          _llint_entry
43  JavaScriptCore          _llint_entry
44  JavaScriptCore          _llint_entry
45  JavaScriptCore          _llint_entry
46  JavaScriptCore          _llint_entry
47  JavaScriptCore          _llint_entry
48  JavaScriptCore          _llint_entry
49  JavaScriptCore          _llint_entry
50  JavaScriptCore          _llint_entry
51  JavaScriptCore          _vmEntryToJavaScript
52  JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
53  JavaScriptCore          JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
54  JavaScriptCore          _llint_entry
55  JavaScriptCore          _llint_entry
56  JavaScriptCore          _llint_entry
57  JavaScriptCore          _llint_entry
58  JavaScriptCore          _vmEntryToJavaScript
59  JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
60  JavaScriptCore          JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
61  JavaScriptCore          _llint_entry
62  JavaScriptCore          _llint_entry
63  JavaScriptCore          _llint_entry
64  JavaScriptCore          _llint_entry
65  JavaScriptCore          _llint_entry
66  JavaScriptCore          _llint_entry
67  JavaScriptCore          _llint_entry
68  JavaScriptCore          _llint_entry
69  JavaScriptCore          _llint_entry
70  JavaScriptCore          _llint_entry
71  JavaScriptCore          _llint_entry
72  JavaScriptCore          _llint_entry
73  JavaScriptCore          _llint_entry
74  JavaScriptCore          _llint_entry
75  JavaScriptCore          _llint_entry
76  JavaScriptCore          _vmEntryToJavaScript
77  JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
78  JavaScriptCore          JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
79  JavaScriptCore          _llint_entry
80  JavaScriptCore          _llint_entry
81  JavaScriptCore          _llint_entry
82  JavaScriptCore          _llint_entry
83  JavaScriptCore          _llint_entry
84  JavaScriptCore          _vmEntryToJavaScript
85  JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
86  JavaScriptCore          JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
87  JavaScriptCore          _llint_entry
88  JavaScriptCore          _vmEntryToJavaScript
89  JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
90  JavaScriptCore          JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
91  JavaScriptCore          _vmEntryToNative
92  JavaScriptCore          JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
93  JavaScriptCore          JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
94  JavaScriptCore          _JSObjectCallAsFunction
95  tmi3                    facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (tmi3)
96  tmi3                    facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (tmi3)
97  tmi3                    facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (tmi3)
98  tmi3                    facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (tmi3)
99  tmi3                    facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (tmi3)
100 tmi3                    facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (tmi3)
101 tmi3                    facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (tmi3)
102 tmi3                    facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (tmi3)
103 CoreFoundation          ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
104 CoreFoundation          ___CFRunLoopDoBlocks
105 CoreFoundation          ___CFRunLoopRun
106 CoreFoundation          _CFRunLoopRunSpecific
107 tmi3                    facebook::react::JSIExecutor::defaultTimeoutInvoker(std::__1::function<void ()> const&, std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()>) (tmi3)
108 Foundation              ___NSThread__start__
109 libsystem_pthread.dylib __pthread_start

image

@kneth I've just got this kind of crash during debugging. The crash seemed to happen right after "swiping out" the app (killing it) and while realm was doing something. Here's a capture of the debugger stack trace, hopefully it helps a bit.

Screen Shot 2021-02-23 at 23 47 17

@cristianoccazinsp Thank you for sharing. We will create a simple app and try to reproduce it by killing the app while doing some Realm operations.

@kneth I've just got this kind of crash during debugging. The crash seemed to happen right after "swiping out" the app (killing it) and while realm was doing something. Here's a capture of the debugger stack trace, hopefully it helps a bit.

I created an app that can reproduce this latest reported crash: https://github.com/kraenhansen/realm-js-issue-3112 .. perhaps that will provide us a hint to eventually solve some of the shutdown related crashes.

I'm facing the same error "Attempted to deference garbage pointer ..." daily with our production app. Fortunately, no users have noticed the crashes, which would indicate that the crash probably happens only when the app is closing / inactive.

The realm DB is encrypted and the version is 6.1.X. Regular offline use without syncing.

We're also seeing these in our production app which uses Realm v.10.2.0

@kneth just checking in, has this been resolved or is it still under investigation? Happy to provide more details / logs if required. Thanks! :)

Unfortunately we haven't been able to find the root cause yet.

@ryanbourneuk Do you see the same pattern as described earlier (that it happens when the app is killed/swiped out)?

I've seen this pretty consistently, a few a week. Always seems to be in the background. Not sure if it's being backgrounded, or coming out.

image

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ashah888 picture ashah888  路  3Comments

texas697 picture texas697  路  3Comments

CrystalRanita picture CrystalRanita  路  3Comments

kevinnguy picture kevinnguy  路  3Comments

bdebout picture bdebout  路  3Comments