Search Unity

Crashes

Discussion in 'Editor & General Support' started by RElam, Jan 14, 2016.

  1. RElam

    RElam

    Joined:
    Nov 16, 2009
    Posts:
    375
    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::DepthSortLayer *,8>::reserve(unsigned __int64) Unknown
    Unity.exe!UI::DepthSortGrid::AddAndGetDepthFor(struct UI::RenderableUIInstruction const &,struct UI::RenderableUIInstruction const *) Unknown
    Unity.exe!UI::DepthSortGrid::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.
     
  2. RElam

    RElam

    Joined:
    Nov 16, 2009
    Posts:
    375
    bump