FMOD5_Reverb3D_GetUserData crash on iOS platform

We use FMOD Studio Unity integration version: 2.02.04. On iOS platform we found some crashes on production with the following stack trace:

{“app_name”:“YourAppName”,“timestamp”:“2023-02-03 10:41:00.00 +0100”,“app_version”:“1.0.20”,“slice_uuid”:“3ed72e97-7693-3fa1-a965-b66109c3100e”,“adam_id”:0,“build_version”:“1.0.20.17302”,“bundleID”:“YourAppName”,“share_with_app_devs”:1,“is_first_party”:0,“bug_type”:“109”,“os_version”:“iPhone OS 13.5.1 (17F80)”,“incident_id”:“AF398325-0D41-43EF-9CC8-0F993BAFEA63”,“name”:“YourAppName”}
Incident Identifier: AF398325-0D41-43EF-9CC8-0F993BAFEA63
CrashReporter Key: 4ac67a16a8f6e57b3b79c3c0fc29fd2846374dc3
Hardware Model: iPhone10,6
Process: YourAppName [804]
Path: /private/var/containers/Bundle/Application/4C83A070-67CC-42D8-A9FE-EE5088763DDE/YourAppName.app/YourAppName
Identifier: YourAppName
Version: 1.0.20.17302 (1.0.20)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: YourAppName [629]

Date/Time: 2023-02-03 10:41:00.0115 +0100
Launch Time: 2023-02-03 10:40:10.7058 +0100
OS Version: iPhone OS 13.5.1 (17F80)
Release Type: User
Baseband Version: 3.05.00
Report Version: 104

Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d
Termination Description: SPRINGBOARD, scene-update watchdog transgression: application:804 exhausted real (wall clock) time allowance of 10.00 seconds | ProcessVisibility: Foreground | ProcessState: Running | WatchdogEvent: scene-update | WatchdogVisibility: Foreground | WatchdogCPUStatistics: ( | “Elapsed total CPU time (seconds): 64.990 (user 64.990, system 0.000), 27% CPU”, | “Elapsed application CPU time (seconds): 53.382, 22% CPU” | )
Triggered by Thread: 0

Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x00000001c0006ba8 __psynch_mutexwait + 8
1 libsystem_pthread.dylib 0x00000001bff25d08 _pthread_mutex_firstfit_lock_wait + 88
2 libsystem_pthread.dylib 0x00000001bff25c7c _pthread_mutex_firstfit_lock_slow$VARIANT$armv81 + 256
3 YourAppName 0x0000000105c13530 FMOD5_Reverb3D_GetUserData + 601196
4 YourAppName 0x0000000105b8eef8 FMOD5_Reverb3D_GetUserData + 58932
5 YourAppName 0x0000000105b8f3f0 FMOD5_Reverb3D_GetUserData + 60204
6 YourAppName 0x0000000105ba6874 FMOD5_Reverb3D_GetUserData + 155568
7 YourAppName 0x00000001086b22f8 Memory_FMOD5_Memory_GetStats_mB856E17F9A68D333DD3257A8219EE3022F9F7D8A + 61383416 (FMODUnity.cpp:18029)
8 YourAppName 0x00000001086b22ac Memory_GetStats_m37C316071BDE98A7166227DF1605A4A7FAD24133 + 61383340 (FMODUnity.cpp:18019)
9 YourAppName 0x00000001086ba214 RuntimeUtils_EnforceLibraryOrder_m9ECE87D03806B8F10F3E635F97F6037B14E250D1 + 61415956 (FMODUnity.cpp:26946)
10 YourAppName 0x00000001086cee6c StudioListener_OnEnable_m5DA0C6829E0AD1FCCCF7732AD60C5828E60D2FAB + 61501036 (FMODUnity.cpp:30922)
11 YourAppName 0x0000000105066444 RuntimeInvoker_TrueVoid_t700C6383A2A510C2CF4DD86DABD5CA9FF70ADAC5(void ()(), MethodInfo const, void*, void**) + 4449348 (Il2CppInvokerTable.cpp:114054)
12 YourAppName 0x000000010760c234 il2cpp::vm::Runtime::Invoke(MethodInfo const*, void*, void**, Il2CppException**) + 43926068 (Runtime.cpp:576)
13 YourAppName 0x0000000106e18eac scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool) + 35589804 (ScriptingApi_Il2Cpp.cpp:292)
14 YourAppName 0x0000000106e2479c ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool) + 35637148 (ScriptingInvocation.cpp:273)
15 YourAppName 0x0000000106e34008 MonoBehaviour::AddToManager() + 35700744 (MonoBehaviour.cpp:1451)
16 YourAppName 0x0000000106e33a58 MonoBehaviour::AwakeFromLoad(AwakeFromLoadMode) + 35699288 (MonoBehaviour.cpp:1319)
17 YourAppName 0x0000000106e76940 AwakeFromLoadQueue::InvokeAwakeFromLoad(AwakeFromLoadQueue::Item*, unsigned int, AwakeFromLoadMode) + 35973440 (AwakeFromLoadQueue.cpp:540)
18 YourAppName 0x0000000106e76800 AwakeFromLoadQueue::AwakeFromLoadAllQueues(AwakeFromLoadMode, bool) + 35973120 (AwakeFromLoadQueue.cpp:359)
19 YourAppName 0x0000000106c57ba0 AwakeAndActivateClonedObjects(Object**, vector_map<int, int, std::__1::less, stl_allocator<std::__1::pair<int, int>, (MemLabelIdentifier)1, 16> > const&) + 33749920 (AwakeFromLoadQueue.h:0)
20 YourAppName 0x0000000106c57d90 CloneObject(Object&) + 33750416 (CloneObject.cpp:352)
21 YourAppName 0x0000000106e95dec Object_CUSTOM_Internal_CloneSingle(ScriptingBackendNativeObjectPtrOpaque*) + 36101612 (CoreBindings.gen.cpp:54735)
22 YourAppName 0x00000001087fcd5c Object_Internal_CloneSingle_m6C669D602DFD7BC6C47ACA19B2F4D7C853F124BB + 62737756 (UnityEngine.CoreModule1.cpp:17776)
23 YourAppName 0x0000000107814ab4 Object_Instantiate_TisRuntimeObject_m4039C8E65629D33E1EC84D2505BF1D5DDC936622_gshared + 46058164 (GenericMethods13.cpp:44814)
24 YourAppName 0x0000000104cb002c Object_Instantiate_TisGameObject_tC000A2E1A7CF1E10FD7BA08863287C072207C319_m26431AC51B9B7A43FBABD10B4923B72B0C578F33(GameObject_tC000A2E1A7CF1E10FD7BA08863287C072207C319*, MethodInfo const*) + 557100 (GenericMethods13.cpp:39439)

Is this already known? Do you have any workaround what we could do?

This callstack appears to be corrupted; Memory.GetStats for example doesn’t call into Reverb3D.GetUserData, so this might not be a reliable depiction of the crash.
We do have a known crash in versions prior to 2.02.09 when suspending / resuming the mixer on iOS, so it might be worth updating to 2.02.09 and seeing if that helps.

Otherwise, the device and OS aren’t particularly old. Are there any similarities between “OS Version” or “Hardware Model” in the crashes you are seeing?

Thanks for the reply. We will observe the crashes in more detail and come back to you with the more detailed findings

1 Like