Opened 7 years ago

Last modified 2 years ago

#4657 new defect

Atlas crash when generating a map after selecting the actor viewer

Reported by: elexis Owned by:
Priority: Must Have Milestone: Backlog
Component: Atlas editor Keywords:
Cc: Patch: Phab:D4573

Description

Reproduce:

  1. Open atlas and select the actor viewer
  2. Click on "Generate map"

It sounds a lot like comment:1:ticket:3067 and #2112.

Stack trace:

#0  0x00007ffff36c7428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff36c902a in __GI_abort () at abort.c:89
#2  0x00007ffff422b0a5 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff4228c96 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff4228ce1 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff4228f24 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff42294ac in operator new(unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x000000000083181d in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*> (__end=0xfffed92fc9c1 <error: Cannot access memory at address 0xfffed92fc9c1>, 
    __beg=0x7fff00000001 <error: Cannot access memory at address 0x7fff00000001>, this=0x7fffe053c000) at /usr/include/c++/6/bits/basic_string.tcc:219
#8  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*> (__end=0xfffed92fc9c1 <error: Cannot access memory at address 0xfffed92fc9c1>, 
    __beg=0x7fff00000001 <error: Cannot access memory at address 0x7fff00000001>, this=0x7fffe053c000) at /usr/include/c++/6/bits/basic_string.h:196
#9  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*> (__end=0xfffed92fc9c1 <error: Cannot access memory at address 0xfffed92fc9c1>, 
    __beg=0x7fff00000001 <error: Cannot access memory at address 0x7fff00000001>, this=0x7fffe053c000) at /usr/include/c++/6/bits/basic_string.h:215
#10 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (__str=..., this=0x7fffe053c000) at /usr/include/c++/6/bits/basic_string.h:400
#11 CStr8::CStr8 (this=0x7fffe053c000) at ../../../source/ps/CStr.h:64
#12 CTerrainTextureEntry::GetTag (this=<optimized out>) at ../../../source/graphics/TerrainTextureEntry.h:75
#13 STileBlend::DecreasingPriority::operator() (this=<synthetic pointer>, b=..., a=...) at ../../../source/renderer/PatchRData.cpp:108
#14 __gnu_cxx::__ops::_Iter_comp_iter<STileBlend::DecreasingPriority>::operator()<__gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > >, __gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > > > (__it2={m_Texture = 0x7fff68ae43a0, m_Priority = 0, m_TileMask = 16}, __it1={m_Texture = 0x7fff68ae43a0, m_Priority = 0, m_TileMask = 32}, 
    this=<synthetic pointer>) at /usr/include/c++/6/bits/predefined_ops.h:125
#15 std::__insertion_sort<__gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > >, __gnu_cxx::__ops::_Iter_comp_iter<STileBlend::DecreasingPriority> > (__first=..., 
    __first@entry={m_Texture = 0x7fff68ae43a0, m_Priority = 0, m_TileMask = 16}, __last=..., __last@entry={m_Texture = 0x90, m_Priority = 276, m_TileMask = 0}, __comp=...)
    at /usr/include/c++/6/bits/stl_algo.h:1844
#16 0x000000000082b4fe in std::__final_insertion_sort<__gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > >, __gnu_cxx::__ops::_Iter_comp_iter<STileBlend::DecreasingPriority> > (__comp=..., __last=..., __first={m_Texture = 0x7fff68ae43a0, m_Priority = 0, m_TileMask = 16}) at /usr/include/c++/6/bits/stl_algo.h:1887
#17 std::__sort<__gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > >, __gnu_cxx::__ops::_Iter_comp_iter<STileBlend::DecreasingPriority> > (__comp=..., __last=
  {m_Texture = 0x90, m_Priority = 276, m_TileMask = 0}, __first={m_Texture = 0x7fff68ae43a0, m_Priority = 0, m_TileMask = 16}) at /usr/include/c++/6/bits/stl_algo.h:1968
#18 std::sort<__gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > >, STileBlend::DecreasingPriority> (__last={m_Texture = 0x90, m_Priority = 276, m_TileMask = 0}, 
    __first={m_Texture = 0x7fff68ae43a0, m_Priority = 0, m_TileMask = 16}, __comp=...) at /usr/include/c++/6/bits/stl_algo.h:4739
#19 CPatchRData::BuildBlends (this=this@entry=0x7fff59a79aa0) at ../../../source/renderer/PatchRData.cpp:189
#20 0x000000000082be99 in CPatchRData::Build (this=0x7fff59a79aa0) at ../../../source/renderer/PatchRData.cpp:664
#21 CPatchRData::CPatchRData (this=0x7fff59a79aa0, patch=0x7fff6b091b38, simulation=0x7fff6abaeaf0) at ../../../source/renderer/PatchRData.cpp:71
#22 0x00000000007edbb3 in TerrainRenderer::Submit (this=0x7fffd8251230, cullGroup=0, patch=0x7fff6b091b38) at ../../../source/renderer/TerrainRenderer.cpp:122
#23 0x00000000008cbade in ActorViewerImpl::EnumerateObjects (this=0x7fff6abae920, frustum=..., c=0x7fffd82a1970) at ../../../source/tools/atlas/GameInterface/ActorViewer.cpp:121
#24 0x00000000007f5117 in CRenderer::RenderScene (this=0x7fffd82a1970, scene=...) at ../../../source/renderer/Renderer.cpp:1821
#25 0x00000000008c93ba in ActorViewer::Render (this=<optimized out>) at ../../../source/tools/atlas/GameInterface/ActorViewer.cpp:529
#26 0x000000000088396a in AtlasViewActor::Render (this=0x7fff6aa83da0) at ../../../source/tools/atlas/GameInterface/View.cpp:91
#27 0x0000000000881eef in RunEngine (data=<optimized out>) at ../../../source/tools/atlas/GameInterface/GameLoop.cpp:228
#28 0x00007ffff3a636ba in start_thread (arg=0x7fffe053d700) at pthread_create.c:333
#29 0x00007ffff37993dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

This crash already occurs on alpha 21, but with a different stack trace:

#0  0x00007ffff3487428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff348902a in __GI_abort () at abort.c:89
#2  0x00007ffff3feb0a5 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff3fe8c96 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff3fe8ce1 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff3fe8f24 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff40128df in std::__throw_length_error(char const*) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007ffff407e0bc in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#8  0x000000000079c169 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*> (
    __end=0xfff3ffff99495c70 <error: Cannot access memory at address 0xfff3ffff99495c70>, __beg=0xfffaffff99495c70 <error: Cannot access memory at address 0xfffaffff99495c70>, this=0x7fffc9ffe010)
    at /usr/include/c++/5/bits/basic_string.tcc:219
#9  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*> (__end=0xfff3ffff99495c70 <error: Cannot access memory at address 0xfff3ffff99495c70>, 
    __beg=0xfffaffff99495c70 <error: Cannot access memory at address 0xfffaffff99495c70>, this=0x7fffc9ffe010) at /usr/include/c++/5/bits/basic_string.h:195
#10 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*> (__end=0xfff3ffff99495c70 <error: Cannot access memory at address 0xfff3ffff99495c70>, 
    __beg=0xfffaffff99495c70 <error: Cannot access memory at address 0xfffaffff99495c70>, this=0x7fffc9ffe010) at /usr/include/c++/5/bits/basic_string.h:214
#11 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (__str=..., this=0x7fffc9ffe010) at /usr/include/c++/5/bits/basic_string.h:401
#12 CStr8::CStr8 (this=0x7fffc9ffe010) at ../../../source/ps/CStr.h:64
#13 CTerrainTextureEntry::GetTag (this=<optimized out>) at ../../../source/graphics/TerrainTextureEntry.h:75
#14 STileBlend::DecreasingPriority::operator() (b=..., a=..., this=<synthetic pointer>) at ../../../source/renderer/PatchRData.cpp:108
#15 __gnu_cxx::__ops::_Iter_comp_iter<STileBlend::DecreasingPriority>::operator()<__gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > >, __gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > > > (__it2={m_Texture = 0x7fff4cbb13e0, m_Priority = 0, m_TileMask = 16}, __it1={m_Texture = 0x7fff4cbb13e0, m_Priority = 0, m_TileMask = 32}, 
    this=<synthetic pointer>) at /usr/include/c++/5/bits/predefined_ops.h:123
#16 std::__insertion_sort<__gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > >, __gnu_cxx::__ops::_Iter_comp_iter<STileBlend::DecreasingPriority> > (__first=..., 
    __first@entry={m_Texture = 0x7fff4cbb13e0, m_Priority = 0, m_TileMask = 16}, __last=..., __last@entry={m_Texture = 0x3800000035, m_Priority = 98, m_TileMask = 100}, __comp=...)
    at /usr/include/c++/5/bits/stl_algo.h:1842
#17 0x0000000000795fae in std::__final_insertion_sort<__gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > >, __gnu_cxx::__ops::_Iter_comp_iter<STileBlend::DecreasingPriority> > (__comp=..., __last=..., __first={m_Texture = 0x7fff4cbb13e0, m_Priority = 0, m_TileMask = 16}) at /usr/include/c++/5/bits/stl_algo.h:1885
#18 std::__sort<__gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > >, __gnu_cxx::__ops::_Iter_comp_iter<STileBlend::DecreasingPriority> > (__comp=..., __last=
  {m_Texture = 0x3800000035, m_Priority = 98, m_TileMask = 100}, __first={m_Texture = 0x7fff4cbb13e0, m_Priority = 0, m_TileMask = 16}) at /usr/include/c++/5/bits/stl_algo.h:1966
#19 std::sort<__gnu_cxx::__normal_iterator<STileBlend*, std::vector<STileBlend, std::allocator<STileBlend> > >, STileBlend::DecreasingPriority> (__last=
  {m_Texture = 0x3800000035, m_Priority = 98, m_TileMask = 100}, __first={m_Texture = 0x7fff4cbb13e0, m_Priority = 0, m_TileMask = 16}, __comp=...) at /usr/include/c++/5/bits/stl_algo.h:4729
#20 CPatchRData::BuildBlends (this=this@entry=0x7fff41c596a0) at ../../../source/renderer/PatchRData.cpp:189
#21 0x0000000000796956 in CPatchRData::Update (this=0x7fff41c596a0, simulation=<optimized out>) at ../../../source/renderer/PatchRData.cpp:678
#22 0x000000000075b0c7 in TerrainRenderer::Submit (this=0x7fff9475f770, cullGroup=0, patch=0x7fff4eff4218) at ../../../source/renderer/TerrainRenderer.cpp:125
#23 0x0000000000827466 in ActorViewerImpl::EnumerateObjects (this=0x7fff4ee29f30, frustum=..., c=0x7fff94753210) at ../../../source/tools/atlas/GameInterface/ActorViewer.cpp:115
#24 0x0000000000763a77 in CRenderer::RenderScene (this=0x7fff94753210, scene=...) at ../../../source/renderer/Renderer.cpp:1811
#25 0x0000000000824b42 in ActorViewer::Render (this=<optimized out>) at ../../../source/tools/atlas/GameInterface/ActorViewer.cpp:510
#26 0x00000000007ebb36 in AtlasViewActor::Render (this=0x7fff4cd9b720) at ../../../source/tools/atlas/GameInterface/View.cpp:91
#27 0x00000000007e9e50 in RunEngine (data=<optimized out>) at ../../../source/tools/atlas/GameInterface/GameLoop.cpp:229
#28 0x00007ffff38236ba in start_thread (arg=0x7fffc9fff700) at pthread_create.c:333
#29 0x00007ffff35593dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Change History (8)

comment:1 by Stan, 7 years ago

I'll try it on windows

comment:2 by Stan, 7 years ago

Another crashlog I managed to get by generating twice the map

 	KERNELBASE.dll!743fb802()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for KERNELBASE.dll]	
>	pyrogenesis.exe!CCamera::UpdateFrustum(const CBoundingBoxAligned & scissor) Line 131	C++
 	pyrogenesis.exe!RunEngine(void * data=0x003ffa54) Line 230	C++
 	pyrogenesis.exe!thread_start(void * param=0x00f5e5a0) Line 624	C++
 	msvcr120.dll!77ebc01d()	Unknown
 	msvcr120.dll!77ebc001()	Unknown
 	kernel32.dll!773c8744()	Unknown
 	ntdll.dll!7788587d()	Unknown
 	ntdll.dll!7788584d()	Unknown

I managed to reproduce it twice. Sometimes it takes one generation, sometimes three,

comment:3 by Stan, 6 years ago

Different error this time. Exception thrown: read access violation. this->m was 0x4.

>	pyrogenesis.exe!ShadowMap::GetHeight() Line 649	C++	Symbols loaded.
 	pyrogenesis.exe!CPatchRData::RenderBases(const std::vector<CPatchRData *,std::allocator<CPatchRData *> > & patches, const CShaderDefines & context, ShadowMap * shadow, bool isDummyShader, const std::shared_ptr<CShaderProgram> & dummy) Line 770	C++	Symbols loaded.
 	pyrogenesis.exe!TerrainRenderer::RenderTerrainShader(const CShaderDefines & context, int cullGroup, ShadowMap * shadow) Line 503	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderPatches(const CShaderDefines & context, int cullGroup) Line 953	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderSubmissions(const CBoundingBoxAligned & waterScissor) Line 1544	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderScene(Scene & scene) Line 1899	C++	Symbols loaded.
 	pyrogenesis.exe!ActorViewer::Render() Line 529	C++	Symbols loaded.
 	pyrogenesis.exe!AtlasViewActor::Render() Line 92	C++	Symbols loaded.
 	pyrogenesis.exe!RunEngine(void * data) Line 230	C++	Symbols loaded.
 	pyrogenesis.exe!thread_start(void * param) Line 624	C++	Symbols loaded.
 	[External Code]		Annotated Frame
 	[Frames below may be incorrect and/or missing, no symbols loaded for ucrtbase.dll]		Annotated Frame

comment:4 by Stan, 6 years ago

Have to do it three times consistently.

read access violation. this->m was 0x4.

>	pyrogenesis.exe!ShadowMap::GetHeight() Line 649	C++	Symbols loaded.
 	pyrogenesis.exe!CPatchRData::RenderBases(const std::vector<CPatchRData *,std::allocator<CPatchRData *> > & patches, const CShaderDefines & context, ShadowMap * shadow, bool isDummyShader, const std::shared_ptr<CShaderProgram> & dummy) Line 770	C++	Symbols loaded.
 	pyrogenesis.exe!TerrainRenderer::RenderTerrainShader(const CShaderDefines & context, int cullGroup, ShadowMap * shadow) Line 503	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderPatches(const CShaderDefines & context, int cullGroup) Line 953	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderSubmissions(const CBoundingBoxAligned & waterScissor) Line 1544	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderScene(Scene & scene) Line 1899	C++	Symbols loaded.
 	pyrogenesis.exe!ActorViewer::Render() Line 529	C++	Symbols loaded.
 	pyrogenesis.exe!AtlasViewActor::Render() Line 92	C++	Symbols loaded.
 	pyrogenesis.exe!RunEngine(void * data) Line 230	C++	Symbols loaded.
 	pyrogenesis.exe!thread_start(void * param) Line 624	C++	Symbols loaded.
 	[External Code]		Annotated Frame
 	[Frames below may be incorrect and/or missing, no symbols loaded for ucrtbase.dll]		Annotated Frame

Another weird crash.

 	KernelBase.dll!753d08b2()	Unknown	Non-user code. Cannot find or open the PDB file.
 	[Frames below may be incorrect and/or missing, no symbols loaded for KernelBase.dll]		Annotated Frame
 	[External Code]		Annotated Frame
>	[Inline Frame] pyrogenesis.exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::{ctor}(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &) Line 782	C++	Symbols loaded.
 	pyrogenesis.exe!CTerrainTextureEntry::GetTag() Line 75	C++	Symbols loaded.
 	[External Code]		Annotated Frame
 	[Inline Frame] pyrogenesis.exe!std::_Sort_unchecked(STileBlend *) Line 2776	C++	Symbols loaded.
 	[Inline Frame] pyrogenesis.exe!std::sort(std::_Vector_iterator<std::_Vector_val<std::_Simple_types<STileBlend> > > _Pred, std::_Vector_iterator<std::_Vector_val<std::_Simple_types<STileBlend> > >) Line 2784	C++	Symbols loaded.
 	pyrogenesis.exe!CPatchRData::BuildBlends() Line 191	C++	Symbols loaded.
 	pyrogenesis.exe!CPatchRData::Update(CSimulation2 * simulation) Line 679	C++	Symbols loaded.
 	pyrogenesis.exe!TerrainRenderer::Submit(int cullGroup, CPatch * patch) Line 127	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::Submit(CPatch * patch) Line 1736	C++	Symbols loaded.
 	pyrogenesis.exe!ActorViewerImpl::EnumerateObjects(const CFrustum & frustum, SceneCollector * c) Line 121	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderScene(Scene & scene) Line 1837	C++	Symbols loaded.
 	pyrogenesis.exe!ActorViewer::Render() Line 529	C++	Symbols loaded.
 	pyrogenesis.exe!AtlasViewActor::Render() Line 92	C++	Symbols loaded.
 	pyrogenesis.exe!RunEngine(void * data) Line 230	C++	Symbols loaded.
 	pyrogenesis.exe!thread_start(void * param) Line 624	C++	Symbols loaded.
 	[External Code]		Annotated Frame

Last edited 6 years ago by Stan (previous) (diff)

comment:5 by Stan, 6 years ago

Well I think the other crash is related because it happened when doing the exact same thing.

comment:6 by phosit, 2 years ago

Patch: D573

comment:7 by phosit, 2 years ago

Patch: D573D4573

comment:8 by Langbart, 2 years ago

Patch: D4573Phab:D4573
Note: See TracTickets for help on using tickets.