New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Persistent crashes on iOS when unloading scene #95
Comments
Hi @nilsk123 , could you provide the symbolicated crash log instead? See here how to do it: https://developer.apple.cosm/library/archive/technotes/tn2151/_index.html The easiest way is to get it from XCode via the Devices & Simulators list.
|
Here it is: |
Getting a similar issue with crashing when unloading an AR scene. |
Same here |
Unity 2018.3.6 |
Can we expect this issue to be fixed? Is there any workaround atm? -> Scenes with ar foundation / Arkit loaded crash when unloaded with the SceneManager. |
I had problems with a ARKit image tracking scene crashing in my app. I rebuilt the scene using ARFoundation image tracking and I have no more crashes. |
@dorkbot For us it also happens with ARFoundation (but not on every unload) |
this hasn't been fixed in the latest versions as far as I can tell (haven't tried the 2.* versions as I don't want to update to unity beta's) We work around it by just never unloading the AR scene, we disable the gameobjects and keep everything in memory when AR isn't used. |
ARFoundation 2.1 is compatible with Unity 2019.1 (released) and 2019.2 (beta) We were not able to reproduce the issue in 1.5/2.1. Are you able to update to 1.5? |
It is compatible? Then I have probably misunderstood the docs on this. I will try using the very latest of all plugins (arfoundation, arkit, arcore) and report back here |
Docs say: Requirements This version of AR Foundation is compatible with the following versions of the Unity Editor: 2019.2a8 and later |
That's an error in the docs (fixing soon).
Is correct. |
I have a well reproducible crash (UnityGfxDeviceWorker / EXC_BAD_ACCESS) using Unity 2019.2.0f1 and ARFoundation 2.1.1 on iOS 12.3. It happens when you do this (around 50% of time):
If you are not deactivating the arCamera, things seem to work fine. I suspect the pointer to the AR texture is freed by the camera deactivation but ar foundation still is writing / tries to write into it. This would be a thread synchronization problem inside the arkit/arfoundation interface. I have not yet tried disabling the camera in the next frame... |
We have temporarily worked around this by disabling multithreaded rendering. Same scenario as above, reset arsession and disable camera gameobject |
I'm having this issue too, 2019.2.0f1 and ARFoundation 3.0.0 preview 2 |
We still see this problem sporadicaly too, even without multithreaded rendering. Never in test environments ofcourse, only in production =P My gut feeling is that it has something to do with the fact we use ScreenCapture.CaptureScreenshotAsTexture() around the same time we reset an AR session, but i'm not entirely sure |
for me it's about 90% of the time when ending an AR session. |
I'm getting the same thing when disabling the ARHumanBodyManager, I'm creating a new issue for it. #308 |
I am unable to reproduce this. One possible difference is my device is running iOS 13. Have you ever seen the issue in iOS 13 or only in iOS 12.x? |
@tdmowrer I can still reproduce this crash with Unity 2019.2.6f1 and iOS 13.1.1. To reproduce, it needs "Multithreaded Rendering" activated. Seems it does not happen as often as with iOS 12.x, but it's definitely still there. |
I've got Unity 2019.2.7f2, ARFoundation 3.0.0-preview.3, iOS 13.1, and multithreaded rendering enabled. In my test, I have a button which does the following: m_Active = !m_Active;
arSession.enabled = m_Active;
arCamera.gameObject.SetActive(m_Active); which is the code you posted earlier. I have tried an iPhone X and iPad Pro. Toggling the session and camera on and off multiple times has the expected behavior and does not crash. Anything else I might be missing to reproduce this? |
Slim chance, and Tim you're probably confident nothing related has changed between these versions, but.. using the exact same setup as him might help? From your 2 responses it looks like you haven't had a chance to try it in similar conditions. For me it definitely happens consistently with anything under preview 3. @kaij Do you get the problem in one of the arfoundation sample scene too or only your own project? |
Fair point. This issue was originally reported in ARKit XR Plugin 1.0.0-preview.23 which was largely rewritten in 2.0 and continues to be reported, so it seems unlikely that a point release within 2.1 or 3.0 would matter significantly. Nevertheless, I tested 2019.2.0f1 with ARFoundation 2.1.4 and ARKit XR Plugin 2.1.2 (i.e., the latest stable releases of those packages). My test script toggles the ARSession component and camera's GameObject once per second: using System.Collections;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
public class CrashieMcCrasherson : MonoBehaviour
{
public ARSession arSession;
public ARCameraManager arCameraManager;
bool m_Active = true;
void OnEnable()
{
StartCoroutine(Toggle());
}
IEnumerator Toggle()
{
while (true)
{
m_Active = !m_Active;
Debug.Log($"{(m_Active ? "Enabling" : "Disabling")} session and camera");
arSession.enabled = m_Active;
arCameraManager.gameObject.SetActive(m_Active);
yield return new WaitForSeconds(1);
}
}
} This works as expected and fails to reproduce the crash on iOS 13.1 (a version reported to reproduce the problem). Could someone submit a bug report, attach a minimal project that reproduces the crash, and then post the case number here so I can investigate further? |
@OVKHAN This sounds unrelated to the issue being discussed in this thread. Could you open a new issue, please? |
Hi, Here's a new twist. I can reliably reproduce this in a build that's been downloaded from testflight. The exact same build transfered to a phone using xcode runs just fine on the same device. |
This script produces a crash intermittently running with: ARFoundation 2.1.0 - preview 3 |
Same problem here... crashes right after I import ARCore XR Plugin , then if I try to open the project it crashes after 5 seconds... |
This issue still persists in Unity 2019.3.0 with preview7 of ARKit It doesn't seem to present on all devices though. We have tested on an iPhoneX with no issue, however an IPad5 did crash using the same build. The iPad was running an older version of iOS ~12 and was updated to 13.3.1 which made no difference to the result. The solution we've currently found is, as above, un-checking multi-threaded rendering, we have also disabled Compute Skinning and Graphic Jobs (however the builds still crashed if multi-threaded was enabled with these disabled) |
Please submit a bug with a project that reproduces the issue, and post the case id here. |
Good news! I was finally able to reproduce this - the key was using an old device (an iPhone 6+ in my case). The fix has been published for 3.1.0-preview.8 with backports to 3.0 (verified) and 2.1 (verified) on the way. |
Hello! We can reproduce it especially on older devices like the iPad Pro 11" 2nd Gen, but it also happens on current Gen iPad Pros with M1. We can trigger the issues by switching to a different camera (disabling the AR Camera) or by enabling / disabling Occlusion. Disabling Multithreaded Rendering fixes the crashes for us as well, surprisingly we also found that disabling it, improves the performance of our app 🤔 |
I'm also seeing crashes on 2021.3.1f1 (LTS), arfoundation pre-9 when trying to perform the code on the ARFoundation documentation page regarding using command buffers to make a copy of a depth or color or confidence image on the GPU for further processing. I have also tried wittling this down to solely doing a Graphics.Blit or also a Graphics.CopyTexture, but both cases also crash in the Graphics thread, typically in a function called "AddCreatedTexture" for the Blit, or within one called CopyTexture for the Graphics.CopyTexture. Things will typically run for a while (1-2 minutes), but randomly crash, sometimes before then. Don't see it on a debug build, only release. Going to try turning off multi-threaded rendering as well to see what happens. |
Following up - disabling multithreaded rendering also fixed the problem. |
In my case I use Started to get same error ONLY for release builds on iOS (Android is ocmpletely fine same as iOS dev build) just after unloading the additive scenes. The scene structure looks like that: Start with main scene (general components + UI manager) > load Additive environment scene with 3D objects and lightning > Load additive AR scene > Load additive level scene. I also can confirm that disabling Multithread Rendering option helped. Please keep the progress of that issue fix in next versions. Is it related to Unity version or ARFoundadion/Addressables? |
Since nobody else bothered to do it, I have reported this issue being caused by MultiThreaded Rendering at Unity Bug: IN-35599 - [AR Foundation] MultiThreaded Rendering crash AR Foundation when enable/disable AR Session on iOS+Android |
I'm seeing persistent crashes when unloading an AR foundation scene on iOS, even using all the latest software.
When I unload a scene, sometimes it works the first couple of times and then crashes, other times it will crash on first try.
Error in XCode is
UnityGfxDeviceWorker (31): EXC_BAD_ACCESS (code=1, address=0xdc56d9600)
Crash log: https://pastebin.com/DUGSPDyS
Software fingerprint:
Unity 2018.3.4f1
iOS 12.1.2
iPhone SE
AR Foundation 1.0.0-preview.22
ARCore XR Plugin 1.0.0-preview.24
ARKit XR Plugin 1.0.0-preview.23
The text was updated successfully, but these errors were encountered: