Opened 12 years ago

Last modified 12 years ago

#1361 closed defect

Game hangs ~2s into custom-made map — at Initial Version

Reported by: vts Owned by:
Priority: Should Have Milestone: Alpha 10
Component: Core engine Keywords:
Cc: Patch:

Description

While developing the wall placement system, I created the attached map to do some basic testing. At some point during approximately the last two weeks (call it roughly between [11494] and [11672]), something changed that caused the game to go into what looks like an infinite JS loop about 2 seconds into the map. This happens only when the window has focus but regardless of the user's activity, and I haven't seen this happen on other maps.

By "hangs", I mean becomes unresponsive and takes up 100% CPU, requiring to be killed from the process monitor. I've observed this happening for revision [11683], the most recent revision at the time of writing.

Attaching WinDbg in a debug build during the hang shows that it's hanging somewhere in SpiderMonkey as a result of a call to ScriptInterface::CallFunction_ while doing some AI work.

0030e4f4 0f41d566 mozjs185_ps_debug_1_0!JS_StrictPropertyStub+0xde5e1
0030e530 0f41dbd7 mozjs185_ps_debug_1_0!JS_StrictPropertyStub+0xd0306
0030e590 0f41ec94 mozjs185_ps_debug_1_0!JS_StrictPropertyStub+0xd0977
0030e5d0 0f37cae9 mozjs185_ps_debug_1_0!JS_StrictPropertyStub+0xd1a34
*** WARNING: Unable to verify checksum for C:\Users\Jeroen\Documents\0AD_git\build\workspaces\vc2010\..\..\..\binaries\system\pyrogenesis_dbg.exe
0030e640 00a61e8f mozjs185_ps_debug_1_0!JS_StrictPropertyStub+0x2f889
0030e684 008ee9e2 pyrogenesis_dbg!ScriptInterface::CallFunction_+0xbf [c:\users\jeroen\documents\0ad_git\source\scriptinterface\scriptinterface.cpp @ 720]
0030e6c8 00a1c2aa pyrogenesis_dbg!ScriptInterface::CallFunctionVoid<CScriptVal>+0x62 [c:\users\jeroen\documents\0ad_git\source\scriptinterface\scriptinterface.h @ 374]
0030e6e4 00a1c0fd pyrogenesis_dbg!CAIWorker::CAIPlayer::Run+0x3a [c:\users\jeroen\documents\0ad_git\source\simulation2\components\ccmpaimanager.cpp @ 243]
0030e774 00a1bb84 pyrogenesis_dbg!CAIWorker::PerformComputation+0x1cd [c:\users\jeroen\documents\0ad_git\source\simulation2\components\ccmpaimanager.cpp @ 488]
0030e780 00a1e0b0 pyrogenesis_dbg!CAIWorker::WaitToFinishComputation+0x24 [c:\users\jeroen\documents\0ad_git\source\simulation2\components\ccmpaimanager.cpp @ 327]
0030e794 00a1df2a pyrogenesis_dbg!CAIWorker::GetCommands+0x20 [c:\users\jeroen\documents\0ad_git\source\simulation2\components\ccmpaimanager.cpp @ 335]
0030e7f4 008e6c53 pyrogenesis_dbg!CCmpAIManager::PushCommands+0x6a [c:\users\jeroen\documents\0ad_git\source\simulation2\components\ccmpaimanager.cpp @ 649]
0030e8c8 008e565a pyrogenesis_dbg!CSimulation2Impl::UpdateComponents+0xe3 [c:\users\jeroen\documents\0ad_git\source\simulation2\simulation2.cpp @ 475]
0030f280 008e84c0 pyrogenesis_dbg!CSimulation2Impl::Update+0x23a [c:\users\jeroen\documents\0ad_git\source\simulation2\simulation2.cpp @ 358]
0030f294 0089cce0 pyrogenesis_dbg!CSimulation2::Update+0x20 [c:\users\jeroen\documents\0ad_git\source\simulation2\simulation2.cpp @ 654]
0030f444 00ab4b2d pyrogenesis_dbg!CNetTurnManager::Update+0x430 [c:\users\jeroen\documents\0ad_git\source\network\netturnmanager.cpp @ 173]

The code at CAIWorker::CAIPlayer::Run runs

m_ScriptInterface.CallFunctionVoid(m_Obj.get(), "HandleMessage", state);

Seeming to indicate that perhaps some AI computation is going into a loop.

Change History (1)

by vts, 12 years ago

Attachment: WallTest.zip added

Contains WallTest.pmp and WallTest.xml.

Note: See TracTickets for help on using tickets.