Search Issue Tracker

Fixed in 2020.2.X

Votes

9

Found in

2018.3.0a1

2018.3.1f1

2019.1.0a1

2019.2.0a1

Issue ID

1122719

Regression

No

Task of generic struct crashes at mono_metadata_class_equal when entering play mode second time

Mono

-

Steps to reproduce:
1. Download the attached project and open "TestScene" scene
2. Enter play mode and wait 5 seconds
3. Exit play mode
4. repeat 2 - 3 step several times

Results: Editor crashes when entering play mode 2nd - 6th time.

Reproduced with: 2019.2.0a4, 2019.1.0b2, 2018.3.5f1

========== OUTPUTTING STACK TRACE ==================

0x00007FFCE594EE21 (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\metadata\metadata.c:5316] mono_metadata_class_equal
0x00007FFCE594C864 (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\metadata\metadata.c:5151] _mono_metadata_generic_class_equal
0x00007FFCE5AD2151 (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\mini\mini-generic-sharing.c:3450] shared_gparam_equal
0x00007FFCE58C2649 (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\eglib\ghashtable.c:311] monoeg_g_hash_table_lookup
0x00007FFCE5ACF684 (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\mini\mini-generic-sharing.c:3488] mini_get_shared_gparam
0x00007FFCE5ACC462 (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\mini\mini-generic-sharing.c:3588] get_shared_inst
0x00007FFCE5ACF90A (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\mini\mini-generic-sharing.c:3666] mini_get_shared_method_full
0x00007FFCE59F1101 (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\mini\seq-points.c:261] mono_get_seq_points
0x00007FFCE59F1035 (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\mini\seq-points.c:310] mono_find_prev_seq_point_for_native_offset
0x00007FFCE5AC53F8 (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\mini\mini-exceptions.c:1008] ves_icall_get_trace
0x000001EA2CD57A29 (Mono JIT Code) (wrapper managed-to-native) System.Diagnostics.StackTrace:get_trace (System.Exception,int,bool)
0x000001EA2CD578B3 (Mono JIT Code) System.Diagnostics.StackTrace:.ctor (System.Exception,int,bool)
0x000001EA2CD5FD03 (Mono JIT Code) System.Diagnostics.StackTrace:.ctor (System.Exception,bool)
0x000001EA2CD5FB83 (Mono JIT Code) System.Environment:GetStackTrace (System.Exception,bool)
0x000001EA2CD5F943 (Mono JIT Code) System.Exception:GetStackTrace (bool)
0x000001EA2CD5F09B (Mono JIT Code) System.Exception:ToString (bool,bool)
0x000001EA2CD5EB0B (Mono JIT Code) System.Exception:ToString ()
0x000001EA2CD51B13 (Mono JIT Code) [C:\Users\<...>t\Assets\Test.cs:56] Test/<RunAsync>d__7:MoveNext ()
0x000001EA2CD51552 (Mono JIT Code) System.Runtime.CompilerServices.AsyncTaskMethodBuilder:Start<TStateMachine_REF> (TStateMachine_REF&)
0x000001EA2CD3EC63 (Mono JIT Code) Test:RunAsync (System.Threading.CancellationToken)
0x000001EA2CD4F5A3 (Mono JIT Code) [C:\Users\<...>\Assets\Test.cs:29] Test/<Awake>d__4:MoveNext ()
0x000001EA2CD4EDF2 (Mono JIT Code) System.Runtime.CompilerServices.AsyncVoidMethodBuilder:Start<TStateMachine_REF> (TStateMachine_REF&)
0x000001EA2CD4E40B (Mono JIT Code) Test:Awake ()
0x000001EA2CF73D38 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FFCE59EC53B (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\mini\mini-runtime.c:2809] mono_jit_runtime_invoke
0x00007FFCE5971F62 (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\metadata\object.c:2921] do_runtime_invoke
0x00007FFCE597AF5F (mono-2.0-bdwgc) [c:\users\builduser\builds\buzqgkf5\0\vm\mono\mono\metadata\object.c:2968] mono_runtime_invoke
0x00007FF7A9DC9C02 (Unity) scripting_method_invoke
0x00007FF7A9DC3D91 (Unity) ScriptingInvocation::Invoke
0x00007FF7A9DC400E (Unity) ScriptingInvocation::InvokeChecked
0x00007FF7A9E23642 (Unity) SerializableManagedRef::CallMethod
0x00007FF7A9D7F67D (Unity) MonoBehaviour::CallAwake
0x00007FF7A9D7D654 (Unity) MonoBehaviour::AddToManager
0x00007FF7A9D7E2DC (Unity) MonoBehaviour::AwakeFromLoad
0x00007FF7A84EFF97 (Unity) AwakeFromLoadQueue::InvokePersistentManagerAwake
0x00007FF7A84F0BB0 (Unity) AwakeFromLoadQueue::PersistentManagerAwakeFromLoad
0x00007FF7A98DE658 (Unity) LoadSceneOperation::CompleteAwakeSequence
0x00007FF7A98DF325 (Unity) LoadSceneOperation::IntegrateMainThread
0x00007FF7A98E2A0B (Unity) PreloadManager::UpdatePreloadingSingleStep
0x00007FF7A98E3099 (Unity) PreloadManager::WaitForAllAsyncOperationsToComplete
0x00007FF7A7F9C007 (Unity) EditorSceneManager::RestoreSceneBackups
0x00007FF7A8526BC8 (Unity) PlayerLoopController::EnterPlayMode
0x00007FF7A8537B20 (Unity) PlayerLoopController::SetIsPlaying
0x00007FF7A853A878 (Unity) Application::TickTimer
0x00007FF7A8807F93 (Unity) MainMessageLoop
0x00007FF7A88116D6 (Unity) WinMain
0x00007FF7AB33CA02 (Unity) __scrt_common_main_seh
0x00007FFD2A387E94 (KERNEL32) BaseThreadInitThunk
0x00007FFD2AE0A251 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========

  1. Resolution Note (fix version 2020.2):

    Fixed locking in mono_get_seq_points (). This fixes an inconsistent crash in g_hash_table_lookup.

Comments (1)

  1. MathijsF

    Jun 24, 2019 13:52

    We're struggling with this issue as well. Currently using UniRx.Async as an alternative, but that has its own issues.

    You mention a test project, but I can't download that, are only Unity employees allowed that? I'd love to take a look at it to see if it's the same issue that we're having.

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.