Search Issue Tracker

By Design

Votes

0

Found in

2020.3

2021.1

2021.1.12f1

Issue ID

1347424

Regression

No

Editor crashes on mono_traverse_object_internal when allocating memory

Mono

-

Reproduction steps:
1. Open the project from the attached google drive link
2. Go to Assets/Scenes/"DocumentationScene"
3. Go to Jobs > Burst > untick Enable Compilation
4. Enter Play mode and exit Play mode
5. Repeat the 4th step until a crash happens.

Reproducible with: 2020.3.14f1, 2021.1.15f1
Could not test with: 2018.4.36f1, 2019.4.29f1, 2021.2.0b4, 2022.1.0a2 (Due to variuos project errors)

First lines of the stack trace:
0x00007ffa8cf8d9e1 (mono-2.0-bdwgc) [unity-liveness.c:280] mono_traverse_object_internal
0x00007ffa8cf8e179 (mono-2.0-bdwgc) [unity-liveness.c:478] mono_unity_liveness_calculation_from_statics
0x00007ff6291dc7d8 (Unity) GarbageCollectSharedAssets
0x00007ff6292173a6 (Unity) UnloadUnusedAssetsOperation::IntegrateMainThread
0x00007ff62921a8c6 (Unity) PreloadManager::UpdatePreloadingSingleStep

Notes:
-The crash usually happens after repeating the 4th step about 30 times, however, it can happen after 5-10 times as well
-Going to UIViewBehavior.cs and swapping the commented lines will result in using the Precompiled version of this code and the crash does not occur.
-If Burst is not disabled, then the crash will not occur. However, if the project is opened with an already enabled Burst and then disabling it, the crash will not occur.

  1. Resolution Note (2022.1.X):

    Problem found in the project code causing corrupted code to be emitted. Use of an internal call to emit an expression bypassed the type checks of the arguments being passed in. The emitted code would cause memory overwrites of objects on the heap causing crashes during the GC cycle.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.