pnarimani / RTLTMPro

Right-To-Left Text Mesh Pro for Unity. This plugin adds support for Persian and Arabic languages to TextMeshPro.
MIT License
529 stars 100 forks source link

Crash when using RTLTMPro #73

Open mjamalil opened 3 years ago

mjamalil commented 3 years ago

Hi I'm getting random crashes since I used your library. First of all thank you for developing this. It's such a nice plugin for supporting Arabic and Farsi in Unity

Here is my stacktrace: LightingSettings: switching bake backend from 1 to 0. Unloading 51 Unused Serialized files (Serialized files now loaded: 0) Loaded scene 'Temp/__Backupscenes/0.backup' Deserialize: 260.235 ms Integration: 279.307 ms Integration of assets: 0.132 ms Thread Wait Time: -0.089 ms Total Operation Time: 539.584 ms System memory in use before: 211.3 MB. System memory in use after: 213.4 MB.

Unloading 312 unused Assets to reduce memory usage. Loaded Objects now: 32469. Total: 169.228100 ms (FindLiveObjects: 7.758500 ms CreateObjectMapping: 3.360600 ms MarkObjects: 157.762800 ms DeleteObjects: 0.344300 ms)

Start importing Assets/Scripts/Game/AgentGame.cs using Guid(03c5cebaa6dfb6741b6909194bc71d55) Importer(-1,00000000000000000000000000000000) -> (artifact id: '7f4b4f88bc99cc1fa8985051597e7582') in 0.007920 seconds AssetDatabase: script compilation time: 0.044644s

[Assets/PlayFabEditorExtensions/Editor/Scripts/Utils/PlayFabEditorPrefsSO.cs line 48]

Initialized touch support. Loaded scene 'Library/Unused/4481ee5aed015ab42ab62afce6d0ab2b' Deserialize: 6.772 ms Integration: 51.535 ms Integration of assets: 0.001 ms Thread Wait Time: 0.062 ms Total Operation Time: 58.371 ms Start importing Assets/Prefabs/Environment.prefab using Guid(ad4aca7f344fa1341a7977f19a449592) Importer(-1,00000000000000000000000000000000) -> (artifact id: 'a4472b8c8fc73263d7e49278a528d19d') in 0.131256 seconds Refreshing native plugins compatible for Editor in 0.90 ms, found 3 plugins. Preloading 0 native plugins for Editor in 0.00 ms. Stacktrace: at <0xffffffff> at (wrapper managed-to-native) UnityEditor.PrefabUtility.SaveAsPrefabAsset_Internal (UnityEngine.GameObject,string,bool&) [0x00009] in :0 at UnityEditor.PrefabUtility.SaveAsPrefabAsset (UnityEngine.GameObject,string,bool&) [0x0000c] in :0 at UnityEditor.Experimental.SceneManagement.PrefabStage.SavePrefab () [0x000a3] in :0 at UnityEditor.Experimental.SceneManagement.PrefabStage.Save () [0x0005f] in :0 at UnityEditor.Experimental.SceneManagement.PrefabStage.AutoSave () [0x00082] in :0 at UnityEditor.Experimental.SceneManagement.PrefabStage.HandleAutoSave () [0x00024] in :0 at UnityEditor.Experimental.SceneManagement.PrefabStage.Tick () [0x00059] in :0 at UnityEditor.SceneManagement.StageNavigationManager.ValidateAndTickStages (bool) [0x000c6] in :0 at UnityEditor.SceneManagement.StageNavigationManager.Update () [0x00028] in :0 at (wrapper delegate-invoke) .invoke_void () [0x0006d] in :0 at UnityEditor.EditorApplication.Internal_CallUpdateFunctions () [0x0007b] in :0 at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) [0x0001f] in <695d1cc93cca45069c528c15c9fdd749>:0 ================================================================= Got a SIGSEGV while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= Received signal SIGSEGV Stack trace: 0x00007ff74c0da2af (Unity) GeneralMonoObjectToTransferFor 0x00007ff74d8eb115 (Unity) Transfer_ManagedObject 0x00007ff74c0d9306 (Unity) ExecuteSerializationCommands 0x00007ff74d8eb1d2 (Unity) Transfer_ManagedObject 0x00007ff74d36ce26 (Unity) ExecuteSerializationCommands 0x00007ff74d373d6e (Unity) TransferScriptingObject 0x00007ff74d836639 (Unity) MonoBehaviour::Transfer 0x00007ff74d84c9d6 (Unity) MonoBehaviour::VirtualRedirectTransfer 0x00007ff74d99bb74 (Unity) ReadObjectFromVector 0x00007ff74eb99616 (Unity) ApplyPrefabStateAndPropertyModificationsToObjects 0x00007ff74eba7c05 (Unity) MergePrefabChanges 0x00007ff74eb50652 (Unity) MergePrefabInternal 0x00007ff74eb4f698 (Unity) MergePrefab 0x00007ff74eb4f8fe (Unity) MergePrefabInstance 0x00007ff74eb4fdc3 (Unity) MergePrefabInstances 0x00007ff74eb4ec25 (Unity) MergeAllPrefabInstancesInScenes 0x00007ff74eb4cf67 (Unity) MergeAllPrefabInstances 0x00007ff74f020ea3 (Unity) AssetHotreload 0x00007ff74f0ccbb5 (Unity) RefreshInternalV2 0x00007ff74f0dbf96 (Unity) StopAssetImportingV2 0x00007ff74f0c63be (Unity) PartialRefreshV2 0x00007ff74f0176c9 (Unity) AssetDatabase::PartialRefresh 0x00007ff74ebae15f (Unity) SavePrefab_Internal 0x00007ff74ebabe73 (Unity) SaveAsPrefabAsset 0x00007ff74e307fe6 (Unity) PrefabUtilityBindings::SaveAsPrefabAsset_Internal 0x00007ff74f726c29 (Unity) PrefabUtility_CUSTOM_SaveAsPrefabAsset_Internal 0x000001fb0313e2e3 (Mono JIT Code) (wrapper managed-to-native) UnityEditor.PrefabUtility:SaveAsPrefabAsset_Internal (UnityEngine.GameObject,string,bool&) 0x000001fb0313cea3 (Mono JIT Code) UnityEditor.PrefabUtility:SaveAsPrefabAsset (UnityEngine.GameObject,string,bool&) 0x000001fb0313ca2b (Mono JIT Code) UnityEditor.Experimental.SceneManagement.PrefabStage:SavePrefab () 0x000001fb0313a79b (Mono JIT Code) UnityEditor.Experimental.SceneManagement.PrefabStage:Save () 0x000001fb0313a60d (Mono JIT Code) UnityEditor.Experimental.SceneManagement.PrefabStage:AutoSave () 0x000001fb03116183 (Mono JIT Code) UnityEditor.Experimental.SceneManagement.PrefabStage:HandleAutoSave () 0x000001fb03115dc3 (Mono JIT Code) UnityEditor.Experimental.SceneManagement.PrefabStage:Tick () 0x000001fb079ed839 (Mono JIT Code) UnityEditor.SceneManagement.StageNavigationManager:ValidateAndTickStages (bool) 0x000001fb079ed50b (Mono JIT Code) UnityEditor.SceneManagement.StageNavigationManager:Update () 0x000001fb079de8d2 (Mono JIT Code) (wrapper delegate-invoke) :invoke_void () 0x000001fb079e4204 (Mono JIT Code) UnityEditor.EditorApplication:Internal_CallUpdateFunctions () 0x000001fb0544bc2d (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr) 0x00007fff7c07e660 (mono-2.0-bdwgc) [mini-runtime.c:2816] mono_jit_runtime_invoke 0x00007fff7c002ae2 (mono-2.0-bdwgc) [object.c:2921] do_runtime_invoke 0x00007fff7c00bb3f (mono-2.0-bdwgc) [object.c:2968] mono_runtime_invoke 0x00007ff74d8988f4 (Unity) scripting_method_invoke 0x00007ff74d891245 (Unity) ScriptingInvocation::Invoke 0x00007ff74d889d35 (Unity) ScriptingInvocation::Invoke 0x00007ff74bed20f2 (Unity) Scripting::UnityEditor::EditorApplicationProxy::Internal_CallUpdateFunctions 0x00007ff74e36de4f (Unity) SceneTracker::Update 0x00007ff74e5aa00d (Unity) Application::TickTimer 0x00007ff74ef3e781 (Unity) MainMessageLoop 0x00007ff74ef427c1 (Unity) WinMain 0x00007ff750d934b6 (Unity) __scrt_common_main_seh 0x00007fffd7eb7034 (KERNEL32) BaseThreadInitThunk 0x00007fffd9622651 (ntdll) RtlUserThreadStart
hk1ll3r commented 3 years ago

Thanks for reporting this. There is no indication in the stacktrace that this is caused by RTLTMPro. The stack trace is for saving a prefab scene most likely. The seg fault may or may not be due to a RTLTMPro component in the prefab.

mjamalil commented 3 years ago

I'm using unity 2020 and RTLMPro v3.3.2. It's very hard to replicate, it doesn't happen very often. I will try to replicate it in fresh project

mjamalil commented 3 years ago

I should mention that it only happens in Unity editor

hk1ll3r commented 3 years ago

I use Unity 2020.3.13f with RTLTMPro 3.3.2 all the time and haven't had a problem. The only way I could help with tracking down the issue is if you share your project and repro steps (for when is more often happens). My hunch is that a rare combination of prefabs / nested prefabs and RTLTMPRo is causing this.