Skip to content
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

Git for unity seems to cause domain reload issues? #30

Open
pryankster opened this issue Apr 17, 2024 · 1 comment
Open

Git for unity seems to cause domain reload issues? #30

pryankster opened this issue Apr 17, 2024 · 1 comment

Comments

@pryankster
Copy link

Description

I started a new project this last weekend (LD55), imported git-for-unity, and was working happily for a while, when all of a sudden
unity kept crashing on domain reload, hanging with a "Reloading Domain (n:nn:nn)" dialog popup.

I force-quit unity, and then could work for a while, but the hang came back after a short period.

I tried unloading various editor assets trying to figure out if one of them was the culprit -- it turned out that once I unloaded git-for-unity, the problem went away.

TBH, I think this is probably a problem with Unity, but the consensus in (this thread)[https://forum.unity.com/threads/getting-stuck-on-domain-reload.1377126] is that unity does this when there are open network connections preventing the domain reload. others reported success when they found leaky sockets in their network code.

Steps to Reproduce

  1. Create a project with Unity 2022.3.24f1, install git-for-unity
  2. ...
  3. Profit unity hangs.

Expected behavior: [What you expect to happen]

Domain reloads, I write 100% bug free code

Actual behavior: [What actually happens]

Domain reload dialog pops up, hangs indefinitely, I am prevented from adding more bugs to my code.

Reproduces how often: [What percentage of the time does it reproduce?]

100%

The last git-for-unity.log that I have on my system, before uninstalling. Dunno if it's relevant.

240413-11:56:47.690  WARN [86] <Repository>                        Error invalidating GitStatus
Unity.Editor.Tasks.ProcessException: Error code -42
Thread was being aborted.
'C:\Program Files\Git\cmd\git.exe -c i18n.logoutputencoding=utf8 -c core.quotepath=false --no-optional-locks status -b -u --porcelain'
Working directory: C:\src\Unity\LD55
 ---> System.Threading.ThreadAbortException: Thread was being aborted.
  at (wrapper managed-to-native) System.Threading.WaitHandle.Wait_internal(intptr*,int,bool,int)
  at System.Threading.WaitHandle.WaitOneNative (System.Runtime.InteropServices.SafeHandle waitableSafeHandle, System.UInt32 millisecondsTimeout, System.Boolean hasThreadAffinity, System.Boolean exitContext) [0x00044] in <b11ba2a8fbf24f219f7cc98532a11304>:0 
  at System.Threading.WaitHandle.InternalWaitOne (System.Runtime.InteropServices.SafeHandle waitableSafeHandle, System.Int64 millisecondsTimeout, System.Boolean hasThreadAffinity, System.Boolean exitContext) [0x00014] in <b11ba2a8fbf24f219f7cc98532a11304>:0 
  at System.Threading.WaitHandle.WaitOne (System.Int64 timeout, System.Boolean exitContext) [0x00000] in <b11ba2a8fbf24f219f7cc98532a11304>:0 
  at System.Threading.WaitHandle.WaitOne (System.Int32 millisecondsTimeout, System.Boolean exitContext) [0x00019] in <b11ba2a8fbf24f219f7cc98532a11304>:0 
  at System.Threading.WaitHandle.WaitOne () [0x00000] in <b11ba2a8fbf24f219f7cc98532a11304>:0 
  at System.Diagnostics.AsyncStreamReader.WaitUtilEOF () [0x00008] in <fbf3bef999a04908bac2dd07829c8508>:0 
  at System.Diagnostics.Process.WaitForExit (System.Int32 milliseconds) [0x0004e] in <fbf3bef999a04908bac2dd07829c8508>:0 
  at System.Diagnostics.Process.WaitForExit () [0x00000] in <fbf3bef999a04908bac2dd07829c8508>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.WaitForExit()
  at Unity.Editor.Tasks.ProcessWrapper.WaitForExit (System.Int32 milliseconds) [0x00014] in .\Library\PackageCache\[email protected]\com.unity.editor.tasks\Editor\Processes\ProcessWrapper.cs:322 
  at Unity.Editor.Tasks.ProcessWrapper.Run () [0x001d5] in .\Library\PackageCache\[email protected]\com.unity.editor.tasks\Editor\Processes\ProcessWrapper.cs:122 
   --- End of inner exception stack trace ---
System.Threading.ThreadAbortException: Thread was being aborted.
  at (wrapper managed-to-native) System.Threading.WaitHandle.Wait_internal(intptr*,int,bool,int)
  at System.Threading.WaitHandle.WaitOneNative (System.Runtime.InteropServices.SafeHandle waitableSafeHandle, System.UInt32 millisecondsTimeout, System.Boolean hasThreadAffinity, System.Boolean exitContext) [0x00044] in <b11ba2a8fbf24f219f7cc98532a11304>:0 
  at System.Threading.WaitHandle.InternalWaitOne (System.Runtime.InteropServices.SafeHandle waitableSafeHandle, System.Int64 millisecondsTimeout, System.Boolean hasThreadAffinity, System.Boolean exitContext) [0x00014] in <b11ba2a8fbf24f219f7cc98532a11304>:0 
  at System.Threading.WaitHandle.WaitOne (System.Int64 timeout, System.Boolean exitContext) [0x00000] in <b11ba2a8fbf24f219f7cc98532a11304>:0 
  at System.Threading.WaitHandle.WaitOne (System.Int32 millisecondsTimeout, System.Boolean exitContext) [0x00019] in <b11ba2a8fbf24f219f7cc98532a11304>:0 
  at System.Threading.WaitHandle.WaitOne () [0x00000] in <b11ba2a8fbf24f219f7cc98532a11304>:0 
  at System.Diagnostics.AsyncStreamReader.WaitUtilEOF () [0x00008] in <fbf3bef999a04908bac2dd07829c8508>:0 
  at System.Diagnostics.Process.WaitForExit (System.Int32 milliseconds) [0x0004e] in <fbf3bef999a04908bac2dd07829c8508>:0 
  at System.Diagnostics.Process.WaitForExit () [0x00000] in <fbf3bef999a04908bac2dd07829c8508>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.WaitForExit()
  at Unity.Editor.Tasks.ProcessWrapper.WaitForExit (System.Int32 milliseconds) [0x00014] in .\Library\PackageCache\[email protected]\com.unity.editor.tasks\Editor\Processes\ProcessWrapper.cs:322 
  at Unity.Editor.Tasks.ProcessWrapper.Run () [0x001d5] in .\Library\PackageCache\[email protected]\com.unity.editor.tasks\Editor\Processes\ProcessWrapper.cs:122 
@shana
Copy link
Member

shana commented Sep 10, 2024

The only thing I can think of is that git is hanging in some way, and when Unity tries to reload the domain, the thread that's running git is stalling the reload. I'll see if I can repro on my own project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants