Opened 10 years ago

Last modified 8 years ago

#2662 new defect

[ATLAS] Atlas crashes simulating giant maps

Reported by: Niek Owned by:
Priority: Must Have Milestone: Backlog
Component: Atlas editor Keywords:
Cc: Patch:

Description

Shieldwolf23 is experiencing multiple recurring crashes when using Atlas on multiple revisions of SVN.

Crashlog: https://dl.dropboxusercontent.com/u/47464522/crashlog.txt Crashdump: https://dl.dropboxusercontent.com/u/47464522/crashlog.dmp

Attachments (2)

crashlogs.zip (26.0 KB ) - added by Niek 10 years ago.
logs.7z (28.8 KB ) - added by Stan 10 years ago.

Download all attachments as: .zip

Change History (16)

comment:1 by Philip Taylor, 10 years ago

crashlog.dmp says Unhandled exception at 0x01309EDA (pyrogenesis.exe) in crashlog.dmp: 0xC0000005: Access violation reading location 0x578DE8C8. at:

>	pyrogenesis.exe!CTerrain::GetTriangulationDir(int i=65, int j=45)  Line 443	C++
 	pyrogenesis.exe!TerrainOverlay::RenderTile(const CColor & colour={...}, bool draw_hidden=false, int i=65, int j=45)  Line 214 + 0x10 bytes	C++
 	pyrogenesis.exe!TerrainOverlay::RenderTile(const CColor & colour={...}, bool draw_hidden=false)  Line 186	C++
 	pyrogenesis.exe!BrushTerrainOverlay::ProcessTile(int i=65, int j=1054657660)  Line 65	C++
 	pyrogenesis.exe!TerrainOverlay::RenderBeforeWater()  Line 168 + 0x11 bytes	C++
 	pyrogenesis.exe!ITerrainOverlay::RenderOverlaysBeforeWater()  Line 94 + 0xa bytes	C++
 	pyrogenesis.exe!CRenderer::RenderSubmissions(const CBoundingBoxAligned & waterScissor={...})  Line 1546	C++
 	pyrogenesis.exe!CRenderer::RenderScene(Scene & scene={...})  Line 1867	C++
 	pyrogenesis.exe!CGameView::Render()  Line 490 + 0x3c bytes	C++
 	pyrogenesis.exe!Render()  Line 224	C++
 	pyrogenesis.exe!CGame::ReallyStartGame()  Line 234	C++
 	pyrogenesis.exe!`anonymous namespace'::StartGame(const CScriptValRooted & attrs={...})  Line 79	C++
 	pyrogenesis.exe!AtlasMessage::fGenerateMap(AtlasMessage::qGenerateMap * msg=0x007be15c)  Line 104	C++
 	pyrogenesis.exe!AtlasMessage::fGenerateMap_wrapper(AtlasMessage::IMessage * msg=0x007be15c)  Line 85 + 0x3f bytes	C++
 	pyrogenesis.exe!RunEngine(void * data=0x007bfc74)  Line 174 + 0x6 bytes	C++
 	pyrogenesis.exe!thread_start(void * param=0x16fdf1e8)  Line 624 + 0x3 bytes	C++

which is the line/instruction

	int h00 = m_Heightmap[j*m_MapSize + i];
01309EDA  movzx       edx,word ptr [ecx+eax*2]  

with m_Heightmap = ecx = 0x35C369F4, j*m_MapSize+i = eax = 0x90E53F6A (which sounds wrong).

Given the values of i and j, it must think m_MapSize = 0x14495c6d. That seems quite bizarre.

What actions triggered this crash? Could you provide some other crashlogs, to see if they're failing in the same way?

comment:2 by Niek, 10 years ago

In this case Shieldwolf was playing around with generating Random Maps

comment:3 by Niek, 10 years ago

Here are the reports of a new crash. It occured during painting terrain and placing entities.

by Niek, 10 years ago

Attachment: crashlogs.zip added

comment:4 by Stan, 10 years ago

Generating random maps with 8 players always crash when using a random seed. Generating two maps in a row seems to do that too.

in reply to:  4 comment:5 by historic_bruno, 10 years ago

Replying to stanislas69:

Generating random maps with 8 players always crash when using a random seed. Generating two maps in a row seems to do that too.

Can you provide crash logs for that? Also try again with the latest SVN, there was a fix related to water rendering when new maps were loaded (#2784).

by Stan, 10 years ago

Attachment: logs.7z added

comment:6 by Stan, 10 years ago

This was with latest SVN.

comment:7 by Stan, 10 years ago

I must admit I generated 5 maps so it's a bit less of a problem :)

in reply to:  3 comment:8 by historic_bruno, 10 years ago

Replying to niektb:

Here are the reports of a new crash. It occured during painting terrain and placing entities.

That one is different than the original report of this ticket. Here's the call stack (note that it actually occurred during simulation reset):

>	pyrogenesis.exe!CCmpRangeManager::LosAddStripHelper(unsigned char owner='>', int i0=44, int i1=1464446100, int j=8, unsigned short * counts=0x5749a008)  Line 1650 + 0x29 bytes	C++
 	pyrogenesis.exe!CCmpRangeManager::LosUpdateHelper<1>(unsigned char owner='', CFixed<int,2147483647,32,15,16,65536> visionRange={...}, CFixedVector2D pos={...})  Line 1769 + 0x15 bytes	C++
 	pyrogenesis.exe!CCmpRangeManager::ResetDerivedData(bool skipLosState=true)  Line 684	C++
 	pyrogenesis.exe!CCmpRangeManager::Deserialize(const CParamNode & paramNode={...}, IDeserializer & deserialize={...})  Line 392 + 0x9 bytes	C++
 	pyrogenesis.exe!CComponentManager::DeserializeState(std::basic_istream<char,std::char_traits<char> > & stream={...})  Line 337	C++
 	pyrogenesis.exe!SimState::Thaw()  Line 41	C++
 	pyrogenesis.exe!AtlasViewGame::RestoreState(const std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > & label="default")  Line 373	C++
 	pyrogenesis.exe!AtlasMessage::fSimStateRestore(AtlasMessage::mSimStateRestore * msg=0x28f2c4b8)  Line 136 + 0x23 bytes	C++
 	pyrogenesis.exe!AtlasMessage::fSimStateRestore_wrapper(AtlasMessage::IMessage * msg=0x28f2c4b8)  Line 134 + 0x41 bytes	C++
 	pyrogenesis.exe!RunEngine(void * data=0x0095faec)  Line 174 + 0x6 bytes	C++
 	pyrogenesis.exe!thread_start(void * param=0x137a44c8)  Line 624 + 0x3 bytes	C++
 	msvcr90.dll!72563433() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for msvcr90.dll]	
 	msvcr90.dll!725634c7() 	
 	kernel32.dll!@BaseThreadInitThunk@12()  + 0xe bytes	
 	ntdll.dll!__RtlUserThreadStart()  + 0x24 bytes	
 	ntdll.dll!__RtlUserThreadStart@8()  + 0x1b bytes	

The code has changed a lot since then, so maybe it was fixed (although serialization errors related to r15508 seem to remain, and scythetwirler reports crashes when resetting the simulation in Atlas)

in reply to:  7 comment:9 by historic_bruno, 10 years ago

Replying to stanislas69:

I must admit I generated 5 maps so it's a bit less of a problem :)

This one is more like the original report. I tried generating a bunch of random maps but didn't get this crash. Are there any particular maps and settings that trigger this? How do you open Atlas, how long is it open before this crash occurs? Really, if you could reduce it to the simplest steps that cause the crash, that would help :)

>	pyrogenesis.exe!CTerrain::GetTriangulationDir(int i=23, int j=138)  Line 443	C++
 	pyrogenesis.exe!TerrainOverlay::RenderTile(const CColor & colour={...}, bool draw_hidden=false, int i=23, int j=138)  Line 214 + 0x10 bytes	C++
 	pyrogenesis.exe!TerrainOverlay::RenderTile(const CColor & colour={...}, bool draw_hidden=false)  Line 186	C++
 	pyrogenesis.exe!BrushTerrainOverlay::ProcessTile(int i=23, int j=1054657660)  Line 65	C++
 	pyrogenesis.exe!TerrainOverlay::RenderBeforeWater()  Line 168 + 0x11 bytes	C++
 	pyrogenesis.exe!ITerrainOverlay::RenderOverlaysBeforeWater()  Line 94 + 0xa bytes	C++
 	pyrogenesis.exe!CRenderer::RenderSubmissions(const CBoundingBoxAligned & waterScissor={...})  Line 1515	C++
 	pyrogenesis.exe!CRenderer::RenderScene(Scene & scene={...})  Line 1866	C++
 	pyrogenesis.exe!CGameView::Render()  Line 489 + 0x3c bytes	C++
 	pyrogenesis.exe!Render()  Line 229	C++
 	pyrogenesis.exe!CGame::ReallyStartGame()  Line 244	C++
 	pyrogenesis.exe!`anonymous namespace'::StartGame(const CScriptValRooted & attrs={...})  Line 79	C++
 	pyrogenesis.exe!AtlasMessage::fGenerateMap(AtlasMessage::qGenerateMap * msg=0x0073e0dc)  Line 105 + 0x1f bytes	C++
 	pyrogenesis.exe!AtlasMessage::fGenerateMap_wrapper(AtlasMessage::IMessage * msg=0x0073e0dc)  Line 85 + 0x3f bytes	C++
 	pyrogenesis.exe!RunEngine(void * data=0x0073fbf4)  Line 174 + 0x6 bytes	C++
 	pyrogenesis.exe!thread_start(void * param=0x12a60ae8)  Line 624 + 0x3 bytes	C++

comment:10 by Stan, 10 years ago

I ´ll try to make it crash today again. Basically I just load maps with random seeds and change map biome.

comment:11 by Itms, 10 years ago

Milestone: Alpha 17Alpha 18

comment:12 by Stan, 9 years ago

Milestone: Alpha 18Backlog
Summary: [Atlas] Experiencing Random Crashes[ATLAS] Experiencing Random Crashes

No patch yet, pushing it to backlog, since we are in feature freeze.

comment:13 by historic_bruno, 9 years ago

Also reported on Fedora bug tracker: https://bugzilla.redhat.com/show_bug.cgi?id=1195188

comment:14 by elexis, 8 years ago

Summary: [ATLAS] Experiencing Random Crashes[ATLAS] Atlas crashes simulating giant maps

Got 2-3 atlas crashes with r17733 today when generating giant maps (as mentioned on the fedora tracker) and then playing with the simulation (as mentioned by niektb above). Didn't get a stack trace, nor could I reproduce the crash afterwards.

Note: See TracTickets for help on using tickets.