clear_proximity
I'm having a zone crash problem that has something to do with the proximity_list being updated. I can recreate this repeatedly on my server in two different zones where perl scripts call quest::clear_proximity() and the client is updating in Client::Handle_OP_ClientUpdate() calling entity_list.ProcessMove(); Visual Studio debugger breaks at the line in EntityList::ProcessMove() NPC *d = itereator.GetData();
The perl files that do this are /qeynos/Hansl_Bigroon.pl and /thedeep/The.pl In each case the text right before the call to quest::clear_proximity() appears on my screen and then the zone is lost. It doesn't crash for a minute or so but typed commands don't work and you can't zone or anything like that. I have tried a source drop_system and resourced in at r198 peq db plus the svn sql since then. I don't know when it started, but it was happining on r202 and is still happening at r227. This server is running on Windows Server 2008 There's no client side or server side logs that indicate an error. The debugger always breaks at that same line. What I think is happening is the QuestManager::clear_proximity() is deleting the proximity_list entry for the perl script at the same time the EntityList::ProcessMove() is iterating through the proximity_list from the call in Client::Handle_OP_ClientUpdate() and EntityList::ProcessMove() tries to access the proximity_list while it's being changed. So maybe I missed a db change somewhere? Is there a way to fix this? |
Just a thought, but this sounds more like an large (possibly infinite?) loop hogging up the CPU cycles, which results in zone.exe not sending updates to the client, resulting in the client going linkdead, and as a result the zone shuts down because no one is left in the zone (just like big pulls + AE rampage).
|
Not likely if the debugger is breaking sounds like a memory access violation to me.
|
All times are GMT -4. The time now is 08:46 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.