Page 1 of 1

[BUG] World Crash logging in

Posted: Wed Feb 01, 2012 11:47 am
by John Adams
While this database does have an excessive number of spawns in it, I do not care that world "Crashes" for any reason. So if we can prevent that, it would be best. Here's the call stack. All I did was log into OO zone, with 9200 spawns attempting to load. No scripts or factions are configured so no NPCs should hate one another. Not sure why I am in this function when it crashes:

Code: Select all

 	ntdll.dll!76eb15de() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]	
 	ntdll.dll!76eb15de() 	
 	ntdll.dll!76ea014e() 	
 	KernelBase.dll!7483b9bc() 	
 	EQ2World__Debug.exe!_unlock(int locknum)  Line 375	C
 	EQ2World__Debug.exe!_unlockexit()  Line 785 + 0x7 bytes	C
 	EQ2World__Debug.exe!_CxxThrowException(void * pExceptionObject, const _s__ThrowInfo * pThrowInfo)  Line 157	C++
 	EQ2World__Debug.exe!operator new(unsigned int size)  Line 64	C++
 	EQ2World__Debug.exe!std::_Allocate<std::_Container_proxy>(unsigned int _Count, std::_Container_proxy * __formal)  Line 36 + 0x15 bytes	C++
 	EQ2World__Debug.exe!std::allocator<std::_Container_proxy>::allocate(unsigned int _Count)  Line 187 + 0xb bytes	C++
 	EQ2World__Debug.exe!std::_Tree_nod<std::_Tmap_traits<Location *,unsigned int,std::less<Location *>,std::allocator<std::pair<Location * const,unsigned int> >,0> >::_Tree_nod<std::_Tmap_traits<Location *,unsigned int,std::less<Location *>,std::allocator<std::pair<Location * const,unsigned int> >,0> >(const std::less<Location *> & _Parg, std::allocator<std::pair<Location * const,unsigned int> > _Al)  Line 492 + 0xa bytes	C++
 	EQ2World__Debug.exe!std::_Tree_val<std::_Tmap_traits<Entity *,unsigned int,std::less<Entity *>,std::allocator<std::pair<Entity * const,unsigned int> >,0> >::_Tree_val<std::_Tmap_traits<Entity *,unsigned int,std::less<Entity *>,std::allocator<std::pair<Entity * const,unsigned int> >,0> >(const std::less<Entity *> & _Parg, std::allocator<std::pair<Entity * const,unsigned int> > _Al)  Line 542 + 0x51 bytes	C++
 	EQ2World__Debug.exe!std::_Tree<std::_Tmap_traits<Entity *,unsigned int,std::less<Entity *>,std::allocator<std::pair<Entity * const,unsigned int> >,0> >::_Tree<std::_Tmap_traits<Entity *,unsigned int,std::less<Entity *>,std::allocator<std::pair<Entity * const,unsigned int> >,0> >(const std::less<Entity *> & _Parg, const std::allocator<std::pair<Entity * const,unsigned int> > & _Al)  Line 698 + 0x51 bytes	C++
 	EQ2World__Debug.exe!std::map<float,Spawn *,std::less<float>,std::allocator<std::pair<float const ,Spawn *> > >::map<float,Spawn *,std::less<float>,std::allocator<std::pair<float const ,Spawn *> > >()  Line 106 + 0x4b bytes	C++
>	EQ2World__Debug.exe!ZoneServer::CheckEnemyList(NPC * npc)  Line 571 + 0x8 bytes	C++
 	EQ2World__Debug.exe!ZoneServer::ProcessAggroChecks()  Line 3884	C++
 	EQ2World__Debug.exe!ZoneServer::Process()  Line 923	C++
 	EQ2World__Debug.exe!ZoneLoop(void * tmp)  Line 4021 + 0x8 bytes	C++
 	EQ2World__Debug.exe!_callthreadstart()  Line 259 + 0xf bytes	C
 	EQ2World__Debug.exe!_threadstart(void * ptd)  Line 243	C
 	kernel32.dll!74a1339a() 	
 	ntdll.dll!76ec9ef2() 	
 	ntdll.dll!76ec9ec5() 	

Re: [BUG] World Crash logging in

Posted: Thu Feb 02, 2012 5:39 am
by Scatman
Any chance you ran out of memory? Looks like a new may have failed...

Re: [BUG] World Crash logging in

Posted: Thu Feb 02, 2012 7:24 am
by John Adams
Not unless you think 12GB RAM with 7GB free is considered "running out" to stupid ass Windows :D I suppose it is related to the excessive spawns, but hoping to plug any holes regardless of the cause.

Think we could wrap whatever it is you think it might be in a try/catch? Or do you think those are evil error masking tricks used by slacker developers who don't want to write solid code? (snicker)



(btw, I see them all over my product at work, so it's them I'm jabbing, not my wonderful C++ dudes here lol)

Re: [BUG] World Crash logging in

Posted: Thu Feb 02, 2012 8:02 am
by Scatman
I hate try/catch for many reasons ;). But what we could do is use the nothrow keyword with new to make it return null like malloc and we can capture and handle it properly

Re: [BUG] World Crash logging in

Posted: Thu Feb 02, 2012 8:27 am
by John Adams
Scatman wrote:Τι στο διάολο έκανε yo μόνο να πω;
Sure, whatever you say :shock:


(btw, that's Greek ;))

Re: [BUG] World Crash logging in

Posted: Thu Feb 02, 2012 9:01 am
by Scatman
Google! They have greek to english translstions :D. Ill putafew into world today as examples.