Search Unity

Mono.pdb file, needed to debug an infinite loop

Discussion in 'Scripting' started by sebas77, Feb 9, 2016.

  1. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    I felt very good about this page on the Unity Documentation:

    http://docs.unity3d.com/Manual/WindowsDebugging.html

    but in order to be able to have a minimal WinDBG support, I need the embedded mono.pdb file, which is not distributed with Unity 5.2 or Unity 5.3 (It's instead present in Unity 5.4 beta).

    Can someone at Unity be so kind to provide this file?
     
  2. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    Hi,

    PDBs for Mono.dll can be found on our symbol server: https://symbolserver.unity3d.com/

    However, we only started archiving it since Unity 5.3, so it's not available for Unity 5.2 and earlier.
     
  3. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    ops, I forgot to mention that I tried that, but it looks like 5.3 is not available either. I can see that the last pdb available is on May 2015. https://symbolserver.unity3d.com/mono.pdb/ are you sure it's there? I can tell you which signature Windbg is looking for (it will always mismatch)

    P.S.: thanks a lot for the help, it's very appreciated!
     
  4. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    Also let me add this, I found out that our infinite loop issue happens inside the Globalgamemanager::Transfer function...any clue what GlobalGameManager can be? Never heard of it.
     
  5. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    Hmm, weird. I'll investigate, but I was pretty sure we started uploading the PDBs with Unity 5.3.

    Which exact Unity version are you on? Maybe I'll be able to get you the PDB directly.

    As for GlobalGameManager::Transfer infinite loop - it's our internal function. It gets deserialized every time you start up Unity. I'm not exactly sure what may cause it to be stuck in infinite loop - is it running by maxing out CPU or just stuck and doing nothing?
     
  6. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    I am testing both with Unity 5.2 and Unity 5.3. Since you say you don't support 5.2, let's focus on 5.3:

    First let's talk about the .PDB. I have built a standalone windows 32 bit development client, with script debugging option on (probably not needed, but I added it anyway). I then run it and attach WinDBG. WinDBG uses this Symbol path:

    cache*c:\symbols-cache;srv*https://msdl.microsoft.com/download/symbols;srv*http://symbolserver.unity3d.com/

    then I use whatever command, for example .analyze -v

    It tries to load all the symbols and then this is what I get:

    SYMSRV: http://symbolserver.unity3d.com//mono.pdb/F2C8DA40ABC24B4FB462F7FB70D949571/mono.pdb not found

    I am not sure how the symbol file hashing works, but F2C8DA40ABC24B4FB462F7FB70D949571 is not in your server.

    ----------------

    About the GlobalGameManager::Transfer. We can reproduce the freezing both with 5.2 and 5.3. I used process explorer to analyze the threads. The thread running GlobalGameManager::Transfer never ends and takes 25% of the CPU constantly (while the other threads are not doing anything). I need to find out what's wrong, any help is very appreciated.
     
  7. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    Which exact Unity version is it on (down to the most minor version numbers and patch numbers)? I'll get you the PDB manually until I can find out why it's not on the server.

    It's weird that it gets stuck on GlobalGameManager::Transfer, since it's an empty function - doesn't really do anything that could lead to an infinite loop. Could you paste the stacktrace from the debugger?
     
  8. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    OK that's probably it then, I am using the patch version 5.3.2p2. Can you please confirm that 5.3.2f1 is available on your servers?

    About the stack, unluckily I lost it, but it appears that the thread is waiting for a signal, that never comes, as result of an Animation Event. At this stage I have not enough information yet, but I will get back once I know more.

    question: why don't you ship the pdb file with Unity?
     
  9. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    ah I got the stack...I am not 100% sure if this is the freezing I am after...I still need more investigation:

    ntdll.dll!ZwWaitForAlertByThreadId+0xa
    ntdll.dll!RtlReleasePath+0x5fa
    ntdll.dll!RtlReleasePath+0x4fa
    ntdll.dll!RtlReleasePath+0x39f
    ntdll.dll!RtlEnterCriticalSection+0x129
    ntdll.dll!RtlEnterCriticalSection+0x40
    Unity.exe!GlobalGameManager::Transfer<StreamedBinaryWrite<1> >+0x3c6eb7
    Unity.exe!GlobalGameManager::Transfer<StreamedBinaryWrite<1> >+0x3aa870
    Unity.exe!GlobalGameManager::Transfer<StreamedBinaryWrite<1> >+0x3b80c5
    Unity.exe!GlobalGameManager::Transfer<StreamedBinaryWrite<1> >+0x3b9102
    Unity.exe!GlobalGameManager::Transfer<StreamedBinaryWrite<1> >+0x3b92cd
    Unity.exe!GlobalGameManager::Transfer<StreamedBinaryWrite<1> >+0x3ba1e6
    Unity.exe!GlobalGameManager::Transfer<StreamedBinaryWrite<1> >+0x3a17bc
    Unity.exe!AnimationEvent::Transfer<YAMLRead>+0x3668e3
    Unity.exe!AnimationEvent::Transfer<YAMLRead>+0x3669b8
    Unity.exe!Renderer::Transfer<YAMLWrite>+0x230e7
    Unity.exe!LevelGameManager::Transfer<StreamedBinaryWrite<0> >+0x2d74
    Unity.exe!LevelGameManager::Transfer<StreamedBinaryWrite<0> >+0x2e5f
    Unity.exe!LevelGameManager::Transfer<StreamedBinaryWrite<0> >+0x315f
    Unity.exe!LevelGameManager::Transfer<StreamedBinaryWrite<0> >+0x31d7
    Unity.exe!AnimationEvent::Transfer<YAMLRead>+0x138421
     
  10. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    That's a broken callstack. That happens when symbols aren't loaded. Try doing ".reload /f" in windbg. The symbols for Unity.exe should be next to the executable. I'm working on getting you the mono.dll ones.
     
  11. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    I've uploaded symbols for mono.dll for 5.3.2p2 here:

    https://oc.unity3d.com/index.php/s/rk69bN4uOCOpxbG

    It seems the fact that the symbols don't get uploaded to the symbol server is a bug on our side: apparently it puts them into our internal server, but not the public one. I'll have that investigated and fixed.
     
  12. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    Great thanks! Further investigation leads me to think now that the problem (I guess a deadlock) is happening in FMOD native code.

    This time I used windbg (the stack you say is broken was generated by Process Explorer, probably didn't have the symbols loaded) and the stack is of the thread consuming the most CPU is

    00 0d97f8c0 00d1177b RobocraftClient!FMOD_OS_SupportsSSE+0xf
    01 0d97f8e0 00d0d19b RobocraftClient!FMOD_Resampler_Linear+0xb
    02 0d97f950 00cc81a9 RobocraftClient!FMOD::DSPWaveTable::read+0x50b
    03 0d97f99c 00cc81a9 RobocraftClient!FMOD::DSPFilter::read+0xd9
    04 0d97f9e8 00cc81a9 RobocraftClient!FMOD::DSPFilter::read+0xd9
    05 0d97fa34 00cc81a9 RobocraftClient!FMOD::DSPFilter::read+0xd9
    06 0d97fa80 00cc81a9 RobocraftClient!FMOD::DSPFilter::read+0xd9
    07 0d97facc 00cc81a9 RobocraftClient!FMOD::DSPFilter::read+0xd9
    08 0d97fb18 00cc81a9 RobocraftClient!FMOD::DSPFilter::read+0xd9
    09 0d97fb64 00cc81a9 RobocraftClient!FMOD::DSPFilter::read+0xd9
    0a 0d97fbb0 00cc81a9 RobocraftClient!FMOD::DSPFilter::read+0xd9
    0b 0d97fbfc 00cc81a9 RobocraftClient!FMOD::DSPFilter::read+0xd9
    0c 0d97fc48 00d0d718 RobocraftClient!FMOD::DSPFilter::read+0xd9
    0d 0d97fc84 00cc70b0 RobocraftClient!FMOD::DSPSoundCard::read+0x38
    0e 0d97fcf8 00ccabb9 RobocraftClient!FMOD::Output::mix+0x2e0
    0f 0d97fd3c 00cc0d8d RobocraftClient!FMOD::OutputPolled::threadFunc+0x319
    10 0d97fd48 00e5772a RobocraftClient!FMOD::Thread::callback+0x6d
    11 0d97fd80 00e577b4 RobocraftClient!_endthreadex+0x3a
    12 0d97fd8c 76c33744 RobocraftClient!_endthreadex+0xc4
    13 0d97fda0 77489cd4 KERNEL32!BaseThreadInitThunk+0x24
    14 0d97fde8 77489c9f ntdll!__RtlUserThreadStart+0x2f
    15 0d97fdf8 00000000 ntdll!_RtlUserThreadStart+0x1b

    I think it's due to something inside Fabric.

    Thanks a lot again for the mono.pdb...should I bother you again if I update the editor?
     
  13. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    Please do ping me again to get you newer symbols if we don't manage to fix our symbolserver by then. Every Unity user should have symbols available for them :).

    That is a background audio thread - it's unlikely it's causing high CPU usage. Is it really consuming a full core?
     
  14. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    yes and I don't think it's the first time we are having this issue. Do you have an advice to be sure I am right? So far I know that the thread is taking 25% of the CPU, I used the same thread ID in windbg, push K and that was the call stack.
     
  15. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    Could you capture a CPU usage trace using Windows Performance Recorder, open it up in Windows Performance analyzer, go to CPU usage (sampled) graph, filter to your game process, load symbols, expand the stacks and show it here?
     
  16. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    Sorry to take advantage of your kindness, but could you also generate the 5.2.2f1 for me? Our live client is running on that version and I am debugging that one too with the help of our QA department.
     
  17. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    I'll do it, thanks for the suggestion
     
  18. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
  19. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    Thanks a lot! This is the result of the windows performance. Please note it's the first time I heard of it, I am not 100% sure I used it right, but the result seems the same:

     
  20. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    I just realized that I can't find a way to call mono_pmip((void*)0x1b45558c) from windbg. the c++ evaluator ?? seems to not be able to evaluate functions in this way. Can you confirm? Is visual studio the only option available then?
     
  21. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
  22. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    oh I didn't because all the other cycles where showing 1...I will do it tomorrow, the file should be still saved. I appreciated a lot your help!
     
  23. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    about the blog. I read that already. It's new stuff to me, but as far as I understood .call actually calls the function from the application from the current thread. I verified it because the main thread call stack was showing mono_pmip as last call. Also it matches the logic:

    Thread is set up for call, 'g' will execute.
    WARNING: This can have serious side-effects,
    including deadlocks and corruption of the debuggee.
     
  24. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    I'm not exactly sure, I use Visual Studio for debugging these things usually. Does it not work with windbg?

    The part that I wanted expanded was the one with many samples (FMOD::Thread::callback), as it's not clear what it is doing currently.
     
  25. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    No I don't think .call is what we want (the evaluation of a function). That's probably why in the Unity3D documentation there is written to use Visual Studio to run mono_pmip. I'll try that next time it freezes.

    OK roger that! Tomorrow first think I will send you the image ;) (if you have windows performance analyzer I can even send you the report file)
     
  26. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    Yup, that would be good.
     
  27. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    Good Morning. I am back with more information. First the file you were looking for:

    https://drive.google.com/file/d/0BynSzm3EhYu5RnlDRjQ0YTE4V0FrRTBVNG9zaW1KV3dYZ3ZF/view?usp=sharing

    than the reply from Fabric author, which seems to confirm my fears:

    "Yep this looks like a classic FMOD deadlock, their threading implementation is not that great!!.... usually these are caused because other threads are stalling or crashing so in order to get a better picture you really need to check the state of all the game related threads... for example it's possible that FMOD's streaming thread is waiting to open/read a file (for example streaming music) but Unity's filesystem is also streaming a scene/asset bundle which then might wait for the game thread which waits for FMOD to release the DSP connections etc.... or it's possible that the mixing thread has encountered an error or again it's stalling on reading a file (yes I have seen it doing that in there as well).... unfortunately it's very hard to track these issues especially without having a complete picture of the threads or access to the source code.... Your best bet will be to submit this issue into Unity ideally with a project that they can reproduce.

    With regards to what you can do to improve the situation... perhaps you can reduce/remove the number of DSP effects (if you have any active) or reduce the number of audio sources you are trying to play or stream (Fabric can help in there). Also if you are using the Fabric's external group components or dynamic audio clip loading perhaps or audio source pool you can disable them temporarily and see if that makes a difference.

    Ultimately it's only Unity that can fix this issue properly. "

    My priority is to understand what causes this and how I can prevent this from happening in future. This is the third time we release to the public a client that randomly freezes (for the same reason) and of course it causes an uproar among the community.
    So far we fixed it almost randomly changing the audio setup, which, of course, is not sustainable as strategy. I hope I can find out the solution with your help. So thank you again for following up.
     
    Last edited: Feb 10, 2016
  28. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    new findings from this morning investigation:

    it seems that the deadlock happens when a sound is disabled (entering in a critical section) and a resampling of an audio is happening. We shouldn't have any resampling, it's a mistake, so we are removing all them. I'll keep you updated.
     
  29. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    The trace you captured doesn't really show the issue in action: it seems like you started capturing while the process was suspended in a debugger. I certainly cannot see any of the stacks you showed me in the picture yesterday. To capture it properly, start capturing it before launching your game, and stop after you reproduce the issue. Don't attach any debuggers - it will only make the trace misleading.
     
  30. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    Last edited: Feb 10, 2016
  31. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    The picture links you posted are broken :(. Says I don't have permission to view them.
     
  32. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    Images fixed, I am quite frustrated because I can't get mono_pimp to work. It always raises an exception when it's called. I need to know what 0x6a9c5df is :(
     
  33. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    Could you please explain to me if the AudioSource RemoveFromManager has been called from a gameobject destroyed or simply deactivated?
     
  34. wkaj

    wkaj

    Unity Technologies

    Joined:
    May 18, 2012
    Posts:
    50
    Are you using MonoBehaviour.OnAudioFilterRead?

    And if so, are you calling any script code that could disable the behaviour with the AudioSource in it?
     
  35. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    We are not using OnAudioFilterRead explicitly, but it's possible that Fabric (our audio engine) does. I sent this thread to the author, so I hope he will be able to reply.
     
  36. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    I disassembled Fabric and OnAudioFilterRead is used in 3 places. I can't add much more information, because without being able to use mono_pimp (it crashes during evaluation), I can't tell you what is calling what.
     
  37. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    More info. It's used in 3 different Monobehaviour.

    AudioCapture should be for recording, therefore we are not surely using it.
    AudioPanner is for the 5.1 audio, that we don't support
    Finally StereoSpreader, which we don't use either, is to recreate a stereo image from a mono source. We don't use it either.

    So I don't think it's involved. Isn't my WPR helping at all?
     
  38. wkaj

    wkaj

    Unity Technologies

    Joined:
    May 18, 2012
    Posts:
    50
    Sorry for the vague question, but can you give any insight on whats happening with audio leading up to the freeze?

    For example, are you unloading a mixer, or adding a Filter component or something like that?

    Cheers
     
  39. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    we don't use DSP filters, so I would not take in consideration us explicitly using it. However we cannot understand why the Resample_Linear function is called. What's the reason? Why is there? All our sounds are sampled at 44khz and our audio settings sample rate is 44khz. Why is this function called then? Also is it normal that DSPFilter::read is used even if we don't use DSP filters at all (neither through Fabric nor through Unity audio mixer)?

    About the unloading..Fabric uses a pool of AudioSources. I guess, but only guess, that what it does is to disable the AudioSource, without destroying it, when it's recycled. This is actually what you can see from the stack. A GameObject is destroyed/deactivated and the AudioSource is recycled (I guess in order to do it, it must remove it from the table of active audio sources)
     
  40. wkaj

    wkaj

    Unity Technologies

    Joined:
    May 18, 2012
    Posts:
    50
    Forget what you see in the naming of the call stack. Firstly, the resampler is always called, even if the rate is the same. This is because it needs to convert from the native file sample format (maybe PCM16) to float. The resampler takes care of this.

    Also the DSPFilter is a generic base level class that takes care of recursing the mix. For example, when the audio sources get merged together, there needs to be a DSP filter unit to mix the inputs. There are a number of levels of mixing occurring, even without explicit DSP effects going on.

    A possible cause of this stack is that the input linked list of a DSP unit is getting messed up, and the list is looped endlessly without reaching the head node. (hence it never exits the loop, the mixdown and finally the critical section).

    This is why I'm asking about the topological changes that are occurring right before the freeze, because without a solid repro to see why the linked list is getting corrupted, I can only go by what is happening to the dsp graph leading up to the corruption.

    Cheers
     
  41. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    thanks,this makes things clearer. We have a limited level of control, because like I said, we use Fabric which automates a lot of stuff. It's also not simple to know what exactly is going on. We think it's due to sounds related to projectile of new weapons we introduced (or explosions of course) and those sounds are played continuously during a multi player match. The client doesn't crash only because the player uses a specific weapon, but it could be just because sits next to another player using that weapon. Also it's pretty random due to the high number of possible combinations (our game is a building game with physic)
    In the past we solved similar cases just changing the audio setup, but this process is too empiric to be used as a strategy (in fact this problem keeps on happening over the time).
    You told me to ignore the DSP stack, but what about the main thread? There it's obvious that a gameobject is disabled/destroyed...shouldn't we focus on that to pin down the case?
     
  42. wkaj

    wkaj

    Unity Technologies

    Joined:
    May 18, 2012
    Posts:
    50
    The main thread is doing normal operations. disabling an audiosource releases the sound engine resources it controls. This is normal, and is happening for performance reasons.

    The reason it is freezing however, is because the mixer thread is never exiting the mix down (a mixdown happens at around 40Hz). When a mix starts, the dsp thread enters the crit, so that the main thread cannot change the topology while the mix is happening. Usually a mix is fast, and the main thread waits for the mix to finish to disconnect the dsp nodes. But here we see the mixer thread is spinning and blocking the crit.

    What frequency are you seeing these freezes in your game? Just trying to gauge how likely we are to get a usable repro of this issue.

    Cheers
     
  43. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    the frequency is also very random. Knowing that it happens with specific weapons, we used those weapons until we meet a crash. Some times it happens on the first match, other times we need to wait 4-5 matches. Overall it usually happens between the first 30 minutes of playing...I'd say most of the times around 15-20 minutes of gameplay.

    I guess a dmp file or a WPR file would not be useful for you to debug the case?

    Can you please explain to me why the stack shows a gameobject setactive? Can you please confirm that it means that the object has been destroyed and or disabled?

    BTW the stacks shown are a constant...it always shows these stacks.
     
  44. wkaj

    wkaj

    Unity Technologies

    Joined:
    May 18, 2012
    Posts:
    50
    Yeh the gameobject is being disabled. I assume this is happening in the fabric system and how they pool gameobjects.

    The stack at freeze time does not help figure out when the linked list gets corrupted (if this is indeed the definite issue), but I will dig into the assumption that this is causing the problem and see what I can find.

    Cheers
     
  45. wkaj

    wkaj

    Unity Technologies

    Joined:
    May 18, 2012
    Posts:
    50
    But yes, could you send through the dmp file so that we can see whats happening a bit closer.

    Cheers
     
  46. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    Ok the only information I can add right now is that Fabric uses AudioSource only inside a single MonoBehaviour (Called AudioComponent). This MonoBehaviour doesn't have an OnDisable, but it does have a OnDestroy.

    I really appreciate your help and I hope you can find a fix. I will be here to help if you need more information, but we have a big issue: we need to release a new client this week and I need to find a solution for the freezing. What are the options left? Shall I ask to our audio designer to try to change some configuration?
     
  47. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    Tomorrow I will ask to reproduce the freeze and I will create a new DMP file.
     
  48. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    Hello,

    DMP file is available here: https://drive.google.com/file/d/0BynSzm3EhYu5TFFnMUhybnBrZFk/view?usp=sharing

    On our side, we are still investigating to understand what we changed that introduced the problem. It would be VERY useful if you can teach us some trick to identify the sound from the DMP or frozen executable. Any other further idea to let us pin down the issue would be useful as well.

    it would be quite useful actually to know what these functions

    0x685311a
    0x685307b
    0x74dc294
    0x15f7120a
    0x678c5df

    Edit: nvm the pointers, I don't think they are useful if the application is not actually running. Meanwhile I finally figured out how to use mono_pmip from windbg. .Call actually works, but I think the result cannot be evaluated if the thread is locked.
     
    Last edited: Feb 11, 2016
  49. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,642
    We finally pinned down the cause of the issue. It was due to a looped, not virtualized, sound attached to a GameObject which is disabled after a while. I really cannot understand how something in nature so random as a deadlock can be caused by a specific sound only.

    I tried to recreate the same scenario in an empty scene, but on its own the sound doesn't cause the freezing.

    Since those are Fabric features, I doubt you can help further, but if you have any information, I am here for future reference.
     
  50. wkaj

    wkaj

    Unity Technologies

    Joined:
    May 18, 2012
    Posts:
    50
    Are you saying that changing the audioclip makes the problem go away?