So, had an intermittent crash in 5.1, and no response from QA, so decided to try to upgrade about a month ago since there were a few 5.2 features I could use, and tried 5.2 and 5.3. Both have the same crippling bug (5.3 adds another), and that's without being able to see if intermittent crash in 5.1 is gone. Anyway, reported showstopper in 5.2, again to the sound of crickets from QA. So, hoping someone either has some helpful suggestions, or perhaps someone from QA notices... The behavior in 5.2+ is a lock that continually allocates resources till I shut it down. The stack looked suspiciously like a threading issue, so I forced machine into single core mode, and produced a result with same test that was likely more telling, where memory allocator crashed trying to allocate way too much memory. Unfortunately VS would error on both when trying to save dmp. Anyway, here's the stack (looking at it, perhaps there some UI optimization or something I can disable?)... Unity.exe!DisplayDialog(class std::basic_string<char,struct std::char_traits<char>,class stl_allocator<char,59,16> > const &,class std::basic_string<char,struct std::char_traits<char>,class stl_allocator<char,59,16> > const &,class std::basic_string<char,struct std::char_traits<char>,class stl_allocator<char,59,16> > const &,class std::basic_string<char,struct std::char_traits<char>,class stl_allocator<char,59,16> > const &) Unknown Unity.exe!EditorMonoConsole::LogToConsoleImplementation(class std::basic_string<char,struct std::char_traits<char>,class stl_allocator<char,59,16> > const &,int,char const *,int,int,int,int,void (*)(struct CppLogEntry const &)) Unknown Unity.exe!LogToConsoleImplementation(class std::basic_string<char,struct std::char_traits<char>,class stl_allocator<char,59,16> > const &,int,char const *,int,int,int,int,void (*)(struct CppLogEntry const &)) Unknown Unity.exe!DebugStringToFilePostprocessedStacktrace(char const *,char const *,char const *,int,char const *,int,int,int,int,void (*)(struct CppLogEntry const &)) Unknown Unity.exe!DebugStringToFile(char const *,int,char const *,int,int,int,int,void (*)(struct CppLogEntry const &)) Unknown Unity.exe!OutOfMemoryError(unsigned __int64,int,struct MemLabelId const &,int,char const *) Unknown Unity.exe!MemoryManager::Allocate(unsigned __int64,int,struct MemLabelId const &,int,char const *,int) Unknown Unity.exe!malloc_internal(unsigned __int64,unsigned __int64,struct MemLabelId const &,int,char const *,int) Unknown Unity.exe!ThreadsafeLinearAllocator::Allocate(unsigned __int64,int) Unknown Unity.exe!StackAllocator::Allocate(unsigned __int64,int) Unknown Unity.exe!MemoryManager::Allocate(unsigned __int64,int,struct MemLabelId const &,int,char const *,int) Unknown Unity.exe!MemoryManager::Reallocate(void *,unsigned __int64,int,struct MemLabelId const &,int,char const *,int) Unknown Unity.exe!realloc_internal(void *,unsigned __int64,int,struct MemLabelId const &,int,char const *,int) Unknown Unity.exe!dynamic_array<struct dynamic_array<struct PPtrKeyframe,4> *,8>::reallocate(struct dynamic_array<struct PPtrKeyframe,4> * *,unsigned __int64) Unknown Unity.exe!dynamic_array<struct UI:epthSortLayer *,8>::reserve(unsigned __int64) Unknown Unity.exe!UI:epthSortGrid::AddAndGetDepthFor(struct UI::RenderableUIInstruction const &,struct UI::RenderableUIInstruction const *) Unknown Unity.exe!UI:epthSortGrid::AddAndGetDepthFor(struct UI::RenderableUIInstruction const &,struct UI::RenderableUIInstruction const *) Unknown Unity.exe!UI::SortForBatching(struct UI::RenderableUIInstruction const *,int,struct UI::RenderableUIInstruction *) Unknown Unity.exe!UI::SortForBatchingJob(struct UI::SortingJobData *) Unknown Unity.exe!JobQueue::Exec(struct JobInfo *,__int64,int) Unknown Unity.exe!JobQueue::ResolveDependency(class JobGroup *) Unknown Unity.exe!JobQueue::Exec(struct JobInfo *,__int64,int) Unknown Unity.exe!JobQueue::WaitForJobGroup(struct JobGroupID,bool) Unknown Unity.exe!CompleteFenceInternal(struct JobFence &) Unknown Unity.exe!GeometryJobInstruction::GeometryJobInstruction(struct UniqueSmallID,struct GeometryJobData *,class VertexBuffer *,unsigned int,unsigned int,class IndexBuffer *,unsigned int,unsigned int) Unknown Unity.exe!JobQueue::Exec(struct JobInfo *,__int64,int) Unknown Unity.exe!JobQueue::WaitForJobGroup(struct JobGroupID,bool) Unknown Unity.exe!CompleteFenceInternal(struct JobFence &) Unknown Unity.exe!GeometryJobTasks::EndGeometryJobFrame(class GfxDevice &) Unknown Unity.exe!Application::UpdateScene(bool) Unknown Unity.exe!Application::UpdateSceneIfNeeded(void) Unknown Unity.exe!Application::TickTimer(void) Unknown Unity.exe!RelaunchUnity(class std::vector<class std::basic_string<char,struct std::char_traits<char>,class stl_allocator<char,59,16> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class stl_allocator<char,59,16> > > > &) Unknown Unity.exe!WinMain() Unknown Unity devs, for what it's worth I vote you take all money I've paid you, or ever will, and apply it to improving stability (or open source efforts). It's the only part of the engine that in my experience is very clearly sub-par. Unity bugs are easily the top threat to my product's timely release and quality, and editor crashes alone cost me conservatively 30m a day. Unity's the most empowering, but unstable package I've ever used.