World Crash: CombatProcess

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:

World Crash: CombatProcess

Post by John Adams » Sun Oct 06, 2013 10:06 am

This is new, but looks like the same old thing... pointer checked, then invalidated in the next line of code. You ever figure out how this is happening? The timing seems too frequent to be coincidence.

Stack
1b8342f8()
> EQ2World.exe!ZoneServer::CombatProcess() Line 981 + 0xb bytes C++
EQ2World.exe!ZoneServer::SpawnProcess() Line 1034 C++
EQ2World.exe!SpawnLoop(void * tmp) Line 5193 + 0x9 bytes C++
EQ2World.exe!_callthreadstart() Line 259 + 0x6 bytes C
EQ2World.exe!_threadstart(void * ptd) Line 241 + 0x5 bytes C
kernel32.dll!_BaseThreadStart@8() + 0x34 bytes
Code

Code: Select all

bool ZoneServer::CombatProcess() {
	bool ret = true;
	Spawn* spawn = 0;
	MutexMap<int32, Spawn*>::iterator itr = spawn_list.begin();
	while (itr.Next()) {
		spawn = itr->second;
==> here		if (spawn && spawn->IsEntity())
			((Entity*)spawn)->ProcessCombat();
	}
	return ret;
}
Console
09:31:02 D Guilds : Sent guild MOTD.
'LOL'
09:31:02 D Guilds : SendGuildUpdate to client online... (Guild::SendGuildUpdate)
09:31:02 D Guilds : Found 156 Unique Account(s) in Guild
09:31:02 D Guilds : Get Guild Recruiting descriptive tag index: 0, value: 0
09:31:02 D Guilds : Get Guild Recruiting descriptive tag index: 1, value: 0
09:31:02 D Guilds : Get Guild Recruiting descriptive tag index: 2, value: 0
09:31:02 D Guilds : Get Guild Recruiting descriptive tag index: 3, value: 0
09:31:02 D Guilds : Sent guild member to a client.
09:31:02 D Guilds : Sent guild member.
09:31:02 D Guilds : Sent guild recruiter info to a client.
09:31:02 D Guilds : Guild::GetGuildMember: 454
09:31:03 D Guilds : Sent guild Event List (Guild::SendGuildEventList).
09:31:03 D Guilds : Sent guild bank events list. (Guild::SendGuildBankEventList)
09:31:03 D Guilds : Sent guild member to a client.
09:31:03 D Guilds : Sent guild member.
09:31:03 D Guilds : Sent guild Event Details (Guild::SendGuildEventDetails).
09:31:20 D Guilds : Sent ALL guild Events (Guild::SendAllGuildEvents).
09:31:20 D Guilds : Sent guild member list to a client.
09:31:24 D Guilds : Guild Member logged in.
09:31:24 D Player : Getting current title index for player 'Haeje'...
09:31:24 D Player : Getting current title index for player 'Haeje'...
09:31:24 D Merchant : Loading Buyback - Player: 454
09:31:28 D Command : Handler: 37, COMMAND: 'autoattack'
09:31:28 D Command : Player 'Haeje' (6624), Command: autoattack
09:31:28 D Command : Handler: 35, COMMAND: 'enablequeuedabilities'
09:31:28 D Command : Player 'Haeje' (6624), Command: enablequeuedabilities
09:31:28 D Command : Player 'Haeje' (6624), Command: welcome_info
09:31:28 I Command : Unhandled command: welcome_info
09:31:32 D Player : Haeje left grid 4294967295 and entered grid 295573686
09:31:57 D Command : Player 'Haeje' (6624), Command: frommerchant
09:31:57 D Command : Player 'Haeje' (6624), Command: clearallqueuedabilities
09:31:58 D Command : Player 'Haeje' (6624), Command: frommerchant
09:32:02 D Command : Player 'Haeje' (6624), Command: frommerchant
09:32:15 D Command : Player 'Haeje' (6624), Command: itemsearch
09:32:15 D Command : Player 'Haeje' (6624), Command: clearallqueuedabilities
09:32:18 D Command : Player 'Haeje' (6624), Command: cancel_broker
09:32:18 I Command : Unhandled command: cancel_broker
09:32:23 D Command : Player 'Haeje' (6624), Command: clearallqueuedabilities
09:32:35 D Command : Player 'Haeje' (6624), Command: clearallqueuedabilities
09:32:37 D Command : Player 'Haeje' (6624), Command: frommerchant
09:32:40 D Command : Player 'Haeje' (6624), Command: clearallqueuedabilities
09:33:38 D World : Timeout up!, state=
09:33:38 D Zone : Client is disconnecting in ZoneServer::ClientProcess (camping = false)
09:33:38 D Zone : Sending login equipment appearance updates...
09:33:38 D Login : Looking for Login Appearance Updates for char_id: 454
09:33:38 D Zone : Calling clients.Remove(client)...
09:33:38 D Guilds : Guild::GetGuildMember: 454
09:33:38 D Guilds : Sent guild member to a client.
09:33:38 D Guilds : Guild Member logged out.
09:33:38 D Zone : Removing client 'Haeje' (454) due to LD/Exit...
09:33:38 I Zone : Scheduling client 'Haeje' for removal.
09:33:38 D Player : Toggling Character OFFLINE!
Note this player just connected


Btw, EQ2TC went weeks without a crash, and after the last SVN update we're crashing here again after 11 successful connections.

User avatar
xinux
Team Member
Posts: 680
Joined: Wed Mar 10, 2010 11:10 am
Location: Destroyer of Servers

Re: World Crash: CombatProcess

Post by xinux » Sun Oct 06, 2013 12:45 pm

Did this person just create a character? cause if they did they are going to crash cause creating characters are still messed up. You can create one but the struct has changed and the information isn't getting stored correctly so the character is all messed up.
EQ II - Build=1360 (Orig) - Build=1360 (DoF) - Build=2654 (KoS) - Build=3375 (Classic) - Build=3554 (EoF)
EQ II - Build=4412 (RoK) - Build=5122 (TSO) - Build=6118 (SF) - Build=7628 (DoV) - Build=8295 (Aod)

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: World Crash: CombatProcess

Post by Jabantiz » Tue Oct 08, 2013 10:44 am

This is an invalid pointer again... I see a possible issue where a client gets deleted the player spawn gets deleted right away which could cause this, assuming it was the player spawn that it crashed on, if not then there is some where else that spawns are being deleted when they shouldn't be.

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: World Crash: CombatProcess

Post by John Adams » Tue Oct 08, 2013 3:01 pm

xinux wrote:Did this person just create a character? cause if they did they are going to crash cause creating characters are still messed up. You can create one but the struct has changed and the information isn't getting stored correctly so the character is all messed up.
Yes, this was a new character created at 2:02am that morning, but it was the DoV client
02:02:15 D Packet: Sending Login Accepted packet (LS_LoginResponse, 1096)
I should hope that character creation isn't messed up ;)

Locked

Who is online

Users browsing this forum: No registered users and 0 guests