Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
jkeogh1413's avatar
jkeogh1413
Meta Employee
2 years ago

Uptick in crashes (Unity app) since last release and the issue persisted after rollback

App: Snapshot VR (App Lab)
Unity 2020.3.43f1
Graphics API: Vulkan
Android API Target and Minimum: Android 10 (API Level 29)
Scripting Backend: Mono
API Compatibility: .NET 4.x
Target Architectures: ARMv7
Remote Services: Photon Bolt, Vivox

On May 1 we released a new minor version 3.2.2.  Users started reporting that they can launch the game, but when attempting to join a server they get stuck in a black screen and eventually get booted back to our default scene or crash all the way to Quest Home.  It sounds similar to this Population: One bug from a while back:
https://support.bigboxvr.com/hc/en-us/articles/360053070851-How-To-Resolve-a-Black-Screen-or-Frequent-Crashing-for-Oculus-Quest

To be safe, we used the new rollback functionality to rollback to our previously stable version, 3.2.1.  Users are still experiencing the issue after the rollback, though the issue was never detected when 3.2.1 was first on our LIVE channel.  This is the part that we can't make sense of.

I'm able to reproduce the issue on 3.2.2, but I never hit a black screen, I always hard crash back to Quest Home.  We rebuilt 3.2.1 to send to a user that can repro the issue, and this is now their experience on 3.2.1 as well.

Crash details are unsymbolicated but all seem to point to libmonobdwgc-2.0.so.  I'd appreciate guidance on how to properly add debug symbols for this build so we can get a better trace - "Create symbols.zip" is greyed out for me in Unity.  Also I can see in logcat that a tombstone and crash.meta file are being generated, but when trying to `adb pull` them from the headset I get `Permission denied`.  This is the tombstone output from logcat:

6:39:44.148 32674 32674 F DEBUG : Build fingerprint: 'oculus/hollywood/hollywood:12/SQ3A.220605.009.A1/50542050028800150:user/release-keys'
16:39:44.148 32674 32674 F DEBUG : Revision: '0'
16:39:44.148 32674 32674 F DEBUG : ABI: 'arm'
16:39:44.148 32674 32674 F DEBUG : Timestamp: 2023-05-17 16:39:43.749686575-0500
16:39:44.148 32674 32674 F DEBUG : Process uptime: 0s
16:39:44.148 32674 32674 F DEBUG : Cmdline: com.GiantScam.SnapshotVR
16:39:44.148 32674 32674 F DEBUG : pid: 31528, tid: 31596, name: UnityMain >>> com.GiantScam.SnapshotVR <<<
16:39:44.148 32674 32674 F DEBUG : uid: 10035
16:39:44.148 32674 32674 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
16:39:44.148 32674 32674 F DEBUG : Cause: null pointer dereference
16:39:44.148 32674 32674 F DEBUG : r0 00000000 r1 00000000 r2 bc18ea80 r3 00000000
16:39:44.148 32674 32674 F DEBUG : r4 ac582b68 r5 ac582b68 r6 ac582b68 r7 00000000
16:39:44.148 32674 32674 F DEBUG : r8 ac065288 r9 d26bb4e0 r10 00000000 r11 d26bacb8
16:39:44.148 32674 32674 F DEBUG : ip b9081500 sp d26bacb8 lr b90807e4 pc b908157c
16:39:44.148 32674 32674 F DEBUG : backtrace:
16:39:44.148 32674 32674 F DEBUG : #00 pc 0000657c <anonymous:b907b000>

Sentry and the Oculus Developer Crash dashboard didn't have much, but the Unity dashboard had a bit more in the trace:

Native StackTrace:

Thread 0 (crashed)
0   libmonobdwgc-2.0.so                0x00000000cbeaf288 -symbols missing for uuid: 0000000000000000000000000000000000000000- 
1   libmonobdwgc-2.0.so                0x00000000cbea5314 -symbols missing for uuid: 0000000000000000000000000000000000000000- 
2   libmonobdwgc-2.0.so                0x00000000cbea4e3c -symbols missing for uuid: 0000000000000000000000000000000000000000- 
3   libmonobdwgc-2.0.so                0x00000000cbeb07e8 -symbols missing for uuid: 0000000000000000000000000000000000000000- 
4   libmonobdwgc-2.0.so                0x00000000cbea9c9c -symbols missing for uuid: 0000000000000000000000000000000000000000- 
5   libmonobdwgc-2.0.so                0x00000000cbeb0fc0 -symbols missing for uuid: 0000000000000000000000000000000000000000- 
6   libmonobdwgc-2.0.so                0x00000000cbeb061c -symbols missing for uuid: 0000000000000000000000000000000000000000- 
7   libmonobdwgc-2.0.so                0x00000000cbeaa080 -symbols missing for uuid: 0000000000000000000000000000000000000000- 
8   libmonobdwgc-2.0.so                0x00000000cbe4fbac -symbols missing for uuid: 0000000000000000000000000000000000000000- 
9   libmonobdwgc-2.0.so                0x00000000cbdb6874 -symbols missing for uuid: 0000000000000000000000000000000000000000- 
10  libmonobdwgc-2.0.so                0x00000000cbdb69a0 -symbols missing for uuid: 0000000000000000000000000000000000000000- 
11  .                                  0x00000000e976c80e -symbols missing for uuid: 0000000000000000000000000000000000000000- 
12  (Mono) at (wrapper managed-to-native) object.__icall_wrapper_ves_icall_array_new_specific (intptr,int) -0x0003b- 
13  (Mono) at UdpKit.UdpPacketPool.Acquire () [0x00057] in -9dd3ea744c0346448b71b6d2c6650147-:0 
14  (Mono) at UdpKit.UdpConnection.OnPacketReceived (byte[],int) [0x00044] in -9dd3ea744c0346448b71b6d2c6650147-:0 
15  (Mono) at UdpKit.UdpSocket.RecvPacket (UdpKit.UdpEndPoint,byte[],int) [0x00017] in -9dd3ea744c0346448b71b6d2c6650147-:0 
16  (Mono) at UdpKit.UdpSocket.RecvNetworkPacket (UdpKit.UdpEndPoint,byte[],int) [0x00035] in -9dd3ea744c0346448b71b6d2c6650147-:0 
17  (Mono) at UdpKit.UdpSocket.RecvNetworkData () [0x0008f] in -9dd3ea744c0346448b71b6d2c6650147-:0 
18  (Mono) at UdpKit.UdpSocket.NetworkLoop () [0x0003b] in -9dd3ea744c0346448b71b6d2c6650147-:0 
19  (Mono) at UdpKit.Async.Task.Runner () [0x00034] in -9dd3ea744c0346448b71b6d2c6650147-:0 
20  (Mono) at System.Threading.ThreadHelper.ThreadStart_Context (object) [0x0001f] in -695d1cc93cca45069c528c15c9fdd749-:0 
21  (Mono) at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00073] in -695d1cc93cca45069c528c15c9fdd749-:0 
22  (Mono) at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00004] in -695d1cc93cca45069c528c15c9fdd749-:0 
23  (Mono) at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) [0x0002f] in -695d1cc93cca45069c528c15c9fdd749-:0 
24  (Mono) at System.Threading.ThreadHelper.ThreadStart () [0x00014] in -695d1cc93cca45069c528c15c9fdd749-:0 
25  (Mono) at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) [0x0004f] in -695d1cc93cca45069c528c15c9fdd749-:0

What we've tried so far:
- Rebooting the headset
- Reinstalling the game
- Factory Reset
- Replacing Vulkan with OpenGLES3
- Building with Android 11 instead of 10

All crash reports I've seen so far are on Android 12.  This issue is not happening on other platforms.  Anyone have any ideas?  Happy to pair with a support team member on this.

1 Reply