EQ2World.exe crash (rev 150)
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
Excellent. I just woke up (spend til 4am playing Assassin's Creed hehe) so coffee and EQ2Emu testing are in the queue. I'll have it on TessEQ2Dev in 15 or so minutes.
Btw, not to derail, but are you ready for the FK work? I've been running live with these for a few weeks, and with no server code changes, they seem to be working ok.
Btw, not to derail, but are you ready for the FK work? I've been running live with these for a few weeks, and with no server code changes, they seem to be working ok.
-
LethalEncounter
- Team: Zombie
- Posts: 2717
- Joined: Wed Jul 25, 2007 10:10 pm
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
World still crashes when you leave the Source of Evil tutorial epic zone using the door widget.
Code: Select all
ntdll.dll!7c91b1fa()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
EQ2World.exe!std::_Vector_iterator<Spawn *,std::allocator<Spawn *> >::~_Vector_iterator<Spawn *,std::allocator<Spawn *> >() + 0x14 bytes C++
ntdll.dll!7c901046()
> EQ2World.exe!Mutex::lock() Line 116 C++
EQ2World.exe!EQStream::GetState() Line 257 + 0x1a bytes C++
EQ2World.exe!EQStream::CheckActive() Line 270 + 0x14 bytes C++
EQ2World.exe!EQStream::EQ2QueuePacket(EQ2Packet * app=0x0da5c6e8, bool attempted_combine=false) Line 479 + 0x8 bytes C++
EQ2World.exe!Client::QueuePacket(EQ2Packet * app=0x0da5c6e8) Line 156 C++
EQ2World.exe!ZoneServer::CustomizeSpawn(Spawn * spawn=0x0bee0660, Client * client=0x09186b80) Line 1329 C++
EQ2World.exe!ZoneServer::CheckSendSpawnToClient() Line 508 C++
EQ2World.exe!ZoneServer::Process() Line 624 C++
EQ2World.exe!ZoneLoop(void * tmp=0x0aa68070) Line 2374 + 0x8 bytes C++
EQ2World.exe!_callthreadstart() Line 293 + 0xf bytes C
EQ2World.exe!_threadstart(void * ptd=0x0aa68d30) Line 277 C
kernel32.dll!7c80b713()
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
-
LethalEncounter
- Team: Zombie
- Posts: 2717
- Joined: Wed Jul 25, 2007 10:10 pm
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
Here's another odd call stack.
The server was running fine, player created and logged in, and simply did an /ooc and crashed the world.
Code: Select all
ntdll.dll!7c91b1fa()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
> EQ2World.exe!_nh_malloc_dbg(unsigned int nSize=112, int nhFlag=0, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0) Line 268 + 0x15 bytes C++
EQ2World.exe!malloc(unsigned int nSize=7929924) Line 154 + 0x15 bytes C++
ntdll.dll!7c901046()
EQ2World.exe!Mutex::lock() Line 116 C++
EQ2World.exe!EQStream::GetState() Line 257 + 0x1a bytes C++
EQ2World.exe!EQStream::CheckActive() Line 270 + 0x14 bytes C++
EQ2World.exe!EQStream::EQ2QueuePacket(EQ2Packet * app=0x0e816698, bool attempted_combine=false) Line 479 + 0x8 bytes C++
EQ2World.exe!Client::QueuePacket(EQ2Packet * app=0x0e816698) Line 156 C++
EQ2World.exe!ZoneList::HandleGlobalChatMessage(Client * from=0x0d56be08, char * to=0x0e6a2658, unsigned short channel=28, char * message=0x0e66c106, char * channel_name=0x00000000) Line 301 C++
EQ2World.exe!Commands::Process(unsigned int index=8, EQ2_16BitString * command_parms=0x1160fba4, Client * client=0x0d56be08) Line 796 + 0x25 bytes C++
EQ2World.exe!Client::HandlePacket(EQApplicationPacket * app=0x0c63aad8) Line 852 C++
EQ2World.exe!Client::Process(bool zone_process=true) Line 1150 + 0xc bytes C++
EQ2World.exe!ZoneServer::ClientProcess() Line 1052 + 0xa bytes C++
EQ2World.exe!ZoneServer::Process() Line 627 C++
EQ2World.exe!ZoneLoop(void * tmp=0x0d515b00) Line 2374 + 0x8 bytes C++
EQ2World.exe!_callthreadstart() Line 293 + 0xf bytes C
EQ2World.exe!_threadstart(void * ptd=0x0cfa9c80) Line 277 C
kernel32.dll!7c80b713()
-
LethalEncounter
- Team: Zombie
- Posts: 2717
- Joined: Wed Jul 25, 2007 10:10 pm
That was a /tell command, but could you try rebuilding the project? Something strange is going on with your server as your last two stacktraces happen when the server uses a lock, which does nothing but tell the server that it wants to lock the section of code. It shouldn't crash, unless of course you set an option to halt if the lock couldn't be obtained within an extremely short amount of time. Otherwise if it can't be obtained, it will just wait until it can.
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
This is just the private SVN code, compiled Debug Win32, and run in debug mode. Traffic is forwarded to this WinXP machine while this server is running, and is the exact same config as the previous call stacks - with the exception that it is from a different SVN.
Whenever I get a new download of code, I usually wipe the old dir, copy the SVN files to the "working" dir and compile - so they should be a clean compile each time. The only setting in the project I ever change is where the EXE is to be created, which is my EQ2Emu folder with the other config files.
I'll mess with it again this week. Normally Dev is locked, so this was just my testing new char creations with the new field changes + FK work, and some noob snuck in and crashed me
Whenever I get a new download of code, I usually wipe the old dir, copy the SVN files to the "working" dir and compile - so they should be a clean compile each time. The only setting in the project I ever change is where the EXE is to be created, which is my EQ2Emu folder with the other config files.
I'll mess with it again this week. Normally Dev is locked, so this was just my testing new char creations with the new field changes + FK work, and some noob snuck in and crashed me
-
LethalEncounter
- Team: Zombie
- Posts: 2717
- Joined: Wed Jul 25, 2007 10:10 pm
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
Mostly it is the 'memory cannot be "read"' message. Due to that critical section regkey you had me set, I also sometimes get the warning about the critical section after clearing the memory cannot be "read" message, though the server resets and runs fine.
Once in a great while, I'll get the plain old "EQ2World.exe has crashed" WER dialog on Windows, only if the debugger is not running.
With the newest code (your compile), I have not seen a crash yet, I'll let you know if it continues.
Once in a great while, I'll get the plain old "EQ2World.exe has crashed" WER dialog on Windows, only if the debugger is not running.
With the newest code (your compile), I have not seen a crash yet, I'll let you know if it continues.
-
LethalEncounter
- Team: Zombie
- Posts: 2717
- Joined: Wed Jul 25, 2007 10:10 pm
I would increase the value for that key then. The timeout should only occur if there is a problem, not during normal operations. If you continue after that exception is thrown it probably invalidates the lock and will cause further problems.John Adams wrote:Mostly it is the 'memory cannot be "read"' message. Due to that critical section regkey you had me set, I also sometimes get the warning about the critical section after clearing the memory cannot be "read" message, though the server resets and runs fine.
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
Trapped another foul crash. Not sure what was going on, but some /repops. Things were getting really slow, and EQ2World.exe was at 50% (and 2 eq2 clients ate up the other 50% heh). So dunno if it was simply resources...
Code: Select all
> EQ2World.exe!NPC_AI::Process(NPC * npc=0x06151a50) Line 57 + 0x8 bytes C++
EQ2World.exe!Combat::Process() Line 55 + 0xf bytes C++
EQ2World.exe!ZoneServer::Process() Line 628 C++
EQ2World.exe!ZoneLoop(void * tmp=0x0696dd68) Line 2374 + 0x8 bytes C++
EQ2World.exe!_callthreadstart() Line 293 + 0xf bytes C
EQ2World.exe!_threadstart(void * ptd=0x0696e4f8) Line 277 C
kernel32.dll!7c80b713()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
Who is online
Users browsing this forum: No registered users and 1 guest