Another crash

Old bugs stored here for reference.
Locked
User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Another crash

Post by John Adams » Fri Mar 26, 2010 5:40 pm

What is it with this crash?

Code: Select all

>	EQ2WorldDebug.exe!Spell::GetSpellData()  Line 290 + 0x3 bytes	C++
 	EQ2WorldDebug.exe!Player::ModifySpellStatus(Spell * spell=0x00000000, short value=-4, bool all_spells=false, unsigned short recast=0, bool modify_recast=true)  Line 1208 + 0x10 bytes	C++
 	EQ2WorldDebug.exe!SpellProcess::RemoveSpellFromQueue(Entity * caster=0x159f0710, bool hostile_only=true)  Line 442	C++
 	EQ2WorldDebug.exe!ZoneServer::KillSpawn(Spawn * dead=0x169abf08, Spawn * killer=0x159f0710, bool send_packet=true, unsigned char damage_type='', unsigned short kill_blow_type=0)  Line 2916	C++
 	EQ2WorldDebug.exe!Combat::KillSpawn(Spawn * dead=0x169abf08, Spawn * killer=0x159f0710, unsigned char damage_type='', unsigned short kill_blow_type=0)  Line 125	C++
 	EQ2WorldDebug.exe!Combat::DamageSpawn(Entity * attacker=0x159f0710, Spawn * victim=0x169abf08, unsigned char type='À', unsigned char damage_type='', unsigned int low_damage=1, unsigned int high_damage=5, const char * spell_name=0x00000000)  Line 176	C++
 	EQ2WorldDebug.exe!Combat::MeleeAttack(Entity * attacker=0x159f0710, Spawn * victim=0x169abf08, float distance=-4.3541746, bool primary=true)  Line 295	C++
 	EQ2WorldDebug.exe!Combat::Process()  Line 80	C++
 	EQ2WorldDebug.exe!CombatLoop(void * tmp=0x159f7020)  Line 3833 + 0xf bytes	C++
 	EQ2WorldDebug.exe!_callthreadstart()  Line 293 + 0xf bytes	C
 	EQ2WorldDebug.exe!_threadstart(void * ptd=0x159fbc28)  Line 277	C
 	kernel32.dll!77e64829() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
I think it's just this one player doing this over and over. Gonna leave Tess offline til Scat shows his hairy face around here tonight.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Another crash

Post by John Adams » Fri Mar 26, 2010 7:27 pm

Ok, taking a stab at trying to at least understand why this is a crash. So I click on the first line in the trace, it takes me to:

Code: Select all

SpellData* Spell::GetSpellData(){
	return spell;
}
where "spell" has no value.

So I click on the second line in the crash, which takes me to:

Code: Select all

void Player::ModifySpellStatus(Spell* spell, sint16 value, bool all_spells, int16 recast, bool modify_recast){
	MSpellsBook.lock();
	vector<SpellBookEntry*>::iterator itr;
	SpellBookEntry* spell2 = 0;
	for(itr = spells.begin(); itr != spells.end(); itr++){
		spell2 = *itr;
		if(all_spells || (spell2->spell_id == spell->GetSpellData()->id)){			
			if(modify_recast){
				spell2->recast = recast;
				spell2->recast_available = Timer::GetCurrentTime2() + (recast*100);
			}
			if(modify_recast || spell2->recast_available <= Timer::GetCurrentTime2() || value == 4) //4 is the spell que value
				spell2->status += value;
			if(!all_spells)
				break;
		}
	}
	MSpellsBook.unlock();
}
Specifically this line:

Code: Select all

if(all_spells || (spell2->spell_id == spell->GetSpellData()->id)){
And when I highlight the last ->id, there is no value. Is this why it's crashing? Because there's a null value and C++ is too stupid to figure it out on it's own?

Or is the problem actually further down in the guts of this trace? I'll keep going.

User avatar
Scatman
Retired
Posts: 1688
Joined: Wed Apr 16, 2008 5:44 am
EQ2Emu Server: Scatman's Word
Characters: Scatman
Location: New Jersey

Re: Another crash

Post by Scatman » Sat Mar 27, 2010 10:09 am

Did you update your server to my commit yesterday?

But yes it's because spell is a NULL value.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Another crash

Post by John Adams » Sat Mar 27, 2010 11:20 am

Yep, all updated nice and proper. Waiting for it to happen again to see if it's a specific spell ID

User avatar
Scatman
Retired
Posts: 1688
Joined: Wed Apr 16, 2008 5:44 am
EQ2Emu Server: Scatman's Word
Characters: Scatman
Location: New Jersey

Re: Another crash

Post by Scatman » Sat Mar 27, 2010 11:34 am

Compiling a fix.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Another crash

Post by John Adams » Mon Mar 29, 2010 5:48 am

Crash

Code: Select all

>	EQ2WorldDebug.exe!std::_Debug_message(const wchar_t * message=0x00f5f6b8, const wchar_t * file=0x00f5e770, unsigned int line=256)  Line 24	C++
 	EQ2WorldDebug.exe!std::_Tree<std::_Tmap_traits<unsigned int,Skill *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Skill *> >,0> >::const_iterator::operator*()  Line 256 + 0x14 bytes	C++
 	EQ2WorldDebug.exe!std::_Tree<std::_Tmap_traits<unsigned int,Skill *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Skill *> >,0> >::iterator::operator*()  Line 466	C++
 	EQ2WorldDebug.exe!std::_Tree<std::_Tmap_traits<unsigned int,Skill *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Skill *> >,0> >::iterator::operator->()  Line 471	C++
 	EQ2WorldDebug.exe!PlayerSkillList::~PlayerSkillList()  Line 139 + 0x8 bytes	C++
 	EQ2WorldDebug.exe!Player::~Player()  Line 102 + 0x20a bytes	C++
 	EQ2WorldDebug.exe!Player::`scalar deleting destructor'()  + 0x14 bytes	C++
 	EQ2WorldDebug.exe!Client::~Client()  Line 180 + 0x32 bytes	C++
 	EQ2WorldDebug.exe!Client::`scalar deleting destructor'()  + 0x14 bytes	C++
 	EQ2WorldDebug.exe!IsPointer<Client *>::Delete(Client * key=0x15dc30e8)  Line 101 + 0x1c bytes	C++
 	EQ2WorldDebug.exe!HandleDeletes<Client *>::CheckDeletes(bool force=false)  Line 183 + 0x10 bytes	C++
 	EQ2WorldDebug.exe!MutexList<Client *>::update(bool force=false)  Line 262	C++
 	EQ2WorldDebug.exe!MutexList<Client *>::size(bool include_pending=true)  Line 133	C++
 	EQ2WorldDebug.exe!ZoneServer::ClientProcess()  Line 1846 + 0x10 bytes	C++
 	EQ2WorldDebug.exe!ZoneServer::Process()  Line 871	C++
 	EQ2WorldDebug.exe!ZoneLoop(void * tmp=0x15c6f068)  Line 3852 + 0x8 bytes	C++
 	EQ2WorldDebug.exe!_callthreadstart()  Line 293 + 0xf bytes	C
 	EQ2WorldDebug.exe!_threadstart(void * ptd=0x16280218)  Line 277	C
 	kernel32.dll!77e64829() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
This one displayed the funky C++ runtime dialog about an iteration unable to be interatededrrrsomethin

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Another crash

Post by John Adams » Tue Mar 30, 2010 7:59 am

Crash.

Code: Select all

>	EQ2WorldDebug.exe!operator delete(void * pUserData=0xfeeefeee)  Line 52 + 0x3 bytes	C++
 	EQ2WorldDebug.exe!Timer::`scalar deleting destructor'()  + 0x25 bytes	C++
 	EQ2WorldDebug.exe!SpellProcess::Process()  Line 135 + 0x37 bytes	C++
 	EQ2WorldDebug.exe!ZoneServer::Process()  Line 873	C++
 	EQ2WorldDebug.exe!ZoneLoop(void * tmp=0x21ddb098)  Line 3853 + 0x8 bytes	C++
 	EQ2WorldDebug.exe!_callthreadstart()  Line 293 + 0xf bytes	C
 	EQ2WorldDebug.exe!_threadstart(void * ptd=0x1a7a7028)  Line 277	C
 	kernel32.dll!77e64829() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Another crash

Post by John Adams » Mon Apr 05, 2010 11:47 am

Crash, but this one said "EQ2WorldDebug.exe has triggered a breakpoint", though there are no breakpoints set.

Code: Select all

>	EQ2WorldDebug.exe!strtoxl(localeinfo_struct * plocinfo=0x00000000, const char * nptr=0x00000000, const char * * endptr=0x00000000, int ibase=10, int flags=0)  Line 94 + 0x2f bytes	C++
 	EQ2WorldDebug.exe!strtol(const char * nptr=0x00000000, char * * endptr=0x00000000, int ibase=10)  Line 236 + 0x15 bytes	C++
 	EQ2WorldDebug.exe!atol(const char * nptr=0x00000000)  Line 56 + 0xd bytes	C
 	EQ2WorldDebug.exe!atoi(const char * nptr=0x00000000)  Line 100 + 0x9 bytes	C
 	EQ2WorldDebug.exe!WorldDatabase::loadCharacter(const char * ch_name=0x1825125c, unsigned int account_id=126, Client * client=0x167a1bf8)  Line 1752 + 0xf bytes	C++
 	EQ2WorldDebug.exe!Client::HandlePacket(EQApplicationPacket * app=0x1c113d90)  Line 662 + 0x20 bytes	C++
 	EQ2WorldDebug.exe!Client::Process(bool zone_process=false)  Line 1599 + 0xc bytes	C++
 	EQ2WorldDebug.exe!ClientList::Process()  Line 1734 + 0x10 bytes	C++
 	EQ2WorldDebug.exe!main(int argc=1, char * * argv=0x019d36b0)  Line 252	C++
 	EQ2WorldDebug.exe!__tmainCRTStartup()  Line 266 + 0x19 bytes	C
 	EQ2WorldDebug.exe!mainCRTStartup()  Line 182	C
 	kernel32.dll!77e6f23b() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	

Edit: Hmm, tracing it back, this is where the break started I think:

Code: Select all

		client->GetPlayer()->GetPlayerInfo()->SetAccountAge(atoi(row[27]));
which happens to be a bug ElCapoTotal just fixed. I'll leave it for him to look over.

Scatman: This is fixed.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Another crash

Post by John Adams » Mon Apr 05, 2010 12:14 pm

Oh, and get this... it was Sakurato that crashed me! Did he think to mention it? Hell no.


Btw potato, Sak's 'created_date' is all 0's. The updating of that field was implemented way after he became a char. Maybe that's the bug?

Code: Select all

DATEDIFF(CURDATE(), created_date) AS accage
results in NULL on him, but on anyone with data, it's a valid int.

User avatar
Zcoretri
Team Member
Posts: 1642
Joined: Fri Jul 27, 2007 12:55 pm
Location: SoCal

Re: Another crash

Post by Zcoretri » Mon Apr 05, 2010 3:50 pm

It's really hard to tell if its crashed or not if you can't see console output, or lack thereof.

I never got in world, got stuck at loading.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Another crash

Post by John Adams » Thu May 06, 2010 8:23 am

Crash writing to the log file.

Code: Select all

 	EQ2WorldDebug.exe!_output_l(_iobuf * stream=0x01203808, const char * format=0x0101d45c, localeinfo_struct * plocinfo=0x00000000, char * argptr=0x2281e2a0)  Line 1643 + 0x1f bytes	C++
 	EQ2WorldDebug.exe!vfprintf_helper(int (_iobuf *, const char *, localeinfo_struct *, char *)* outfn=0x007b6731, _iobuf * str=0x01203808, const char * format=0x0101d43c, localeinfo_struct * plocinfo=0x00000000, char * ap=0x2281e29c)  Line 69 + 0x13 bytes	C
 	EQ2WorldDebug.exe!vfprintf(_iobuf * str=0x01203808, const char * format=0x0101d43c, char * ap=0x2281e29c)  Line 117 + 0x18 bytes	C
 	EQ2WorldDebug.exe!EQEMuLog::write(EQEMuLog::LogIDs id=Error, const char * fmt=0x0101d43c, ...)  Line 139 + 0x1b bytes	C++
>	EQ2WorldDebug.exe!Mutex::lock()  Line 115 + 0x1e bytes	C++
 	EQ2WorldDebug.exe!EQStream::EQ2QueuePacket(EQ2Packet * app=0x2b4884a8, bool attempted_combine=false)  Line 555	C++
 	EQ2WorldDebug.exe!Client::QueuePacket(EQ2Packet * app=0x2b4884a8)  Line 194	C++
 	EQ2WorldDebug.exe!ZoneServer::HandleChatMessage(Client * client=0x203356a0, Spawn * from=0x20e07d98, const char * to=0x00000000, unsigned short channel=32, const char * message=0x2aa2a168, float distance=0.00000000, const char * channel_name=0x00000000, bool show_bubble=true)  Line 1942	C++
 	EQ2WorldDebug.exe!ZoneServer::HandleChatMessage(Spawn * from=0x20e07d98, const char * to=0x00000000, unsigned short channel=32, const char * message=0x2aa2a168, float distance=0.00000000, const char * channel_name=0x00000000, bool show_bubble=true)  Line 1954	C++
 	EQ2WorldDebug.exe!ZoneList::HandleGlobalChatMessage(Client * from=0x26ef49e0, char * to=0x00000000, unsigned short channel=32, const char * message=0x2aa2a168, const char * channel_name=0x00000000)  Line 447	C++
 	EQ2WorldDebug.exe!Commands::Process(unsigned int index=12, EQ2_16BitString * command_parms=0x2281fb24, Client * client=0x26ef49e0)  Line 1241	C++
 	EQ2WorldDebug.exe!Client::HandlePacket(EQApplicationPacket * app=0x2ac011b8)  Line 1108	C++
 	EQ2WorldDebug.exe!Client::Process(bool zone_process=true)  Line 1599 + 0xc bytes	C++
 	EQ2WorldDebug.exe!ZoneServer::ClientProcess()  Line 1882 + 0x18 bytes	C++
 	EQ2WorldDebug.exe!ZoneServer::Process()  Line 884	C++
 	EQ2WorldDebug.exe!ZoneLoop(void * tmp=0x27d59060)  Line 3878 + 0x8 bytes	C++
 	EQ2WorldDebug.exe!_callthreadstart()  Line 293 + 0xf bytes	C
 	EQ2WorldDebug.exe!_threadstart(void * ptd=0x262bb648)  Line 277	C
 	kernel32.dll!77e64829() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Another crash

Post by John Adams » Mon May 17, 2010 6:56 pm

Today EQ2Emulator.net lost it's MySQL instance for some reason (thank you LE for fixing that), but in the process, TessEQ2 crashed - we were on such a long straight uptime too! 1 Week 4 Days 10 Hours 35 Minutes, 79 connections!

Code: Select all

>	EQ2WorldDebug.exe!EQStream::GetState()  Line 273 + 0xf bytes	C++
 	EQ2WorldDebug.exe!EQStreamFactory::CheckTimeout(bool remove_all=false)  Line 256 + 0x8 bytes	C++
 	EQ2WorldDebug.exe!main(int argc=1, char * * argv=0x019d36c8)  Line 256	C++
 	EQ2WorldDebug.exe!__tmainCRTStartup()  Line 266 + 0x19 bytes	C
 	EQ2WorldDebug.exe!mainCRTStartup()  Line 182	C
 	kernel32.dll!77e6f23b() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	

User avatar
ZexisStryfe
Posts: 1026
Joined: Thu Jul 26, 2007 6:39 am
EQ2Emu Server: Sytherian Legends
Location: Connecticut
Contact:

Re: Another crash

Post by ZexisStryfe » Tue May 18, 2010 10:12 am

you were going for the record, huh? :lol:
~ EQ2 Emulator Project Manager

Image
Image
Image
"Zexis, from this day forth, you shall be known as... '3 of 6'" - John Adams

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Another crash

Post by John Adams » Tue May 18, 2010 6:37 pm

Going for 2 weeks, 100 connects, 10 simultaneous!

User avatar
ilythor
Retired
Posts: 436
Joined: Sun Oct 14, 2007 3:44 am
EQ2Emu Server: TessEq2
Location: Australia, mate!
Contact:

Re: Another crash

Post by ilythor » Wed May 19, 2010 12:04 am

I'd happily try to cut that number down to 9, yet i keep running face first into Hardware Hiccups. My hard drive released it's puff of magic uncorrupting smoke, and decided to randomly stop working. I had to get a new hard drive and I tried my hardest to recover a byte of it, but nothing. Eq2 has dissapeared. Again. I used Linux of a CD, downloaded all the system recovery tools I could grab my hands on, scoured all the Linux support Forums, all the terminal commands a Microsoft Developer (developers, developers, developers) could want to poke a stick at. Nada.

It's ok, upgrading internet the split second this modem decides to arrive. Don't get your hopes up though! Knowing my luck with Eq2.
"Everytime you pull the trigger in space, you will ruin someone's day, somewhere, and eventually, some time."

Locked

Who is online

Users browsing this forum: No registered users and 0 guests