PDA

View Full Version : Crash Dump


provocating
01-22-2015, 11:50 PM
I have a new crash dump, when a player starts an LDoN, as soon as he clicks to accept the adventure. Specifically Butcherblock, a collection on normal mode. He selects the adventure while he has three players, then drops one before actually accepting the adventure.

Specifically if he adds his level 54 cleric to the group. The other two players are 32 and 27. Gets the specific adventure, then intentionally drops the cleric from the group before hitting accept. The world server will crash. I did happen to collect the data on it.

My source is not new, I am a few months behind. I am not sure which specific file to look into, do you start with #0 or #6?


Program received signal SIGSEGV, Segmentation fault.
0x00000000004d6b87 in MySQLRequestRow::operator[] (this=0x7fffffffe350,
index=0) at /home/eq1/src/server/common/mysql_request_row.cpp:67
67 return m_MySQLRow[index];
(gdb)
(gdb) bt
#0 0x00000000004d6b87 in MySQLRequestRow::operator[] (this=0x7fffffffe350,
index=0) at /home/eq1/src/server/common/mysql_request_row.cpp:67
#1 0x000000000049e4be in Database::GetCharacterID (this=<optimized out>,
name=<optimized out>) at /home/eq1/src/server/common/database.cpp:785
#2 0x00000000004512a4 in Adventure::AddPlayer (this=0x821720,
character_name=..., add_client_to_instance=true)
at /home/eq1/src/server/world/adventure.cpp:57
#3 0x0000000000458986 in AdventureManager::TryAdventureCreate (this=0x7bb9c0,
data=0x808000 "Doyle")
at /home/eq1src/server/world/adventure_manager.cpp:405
#4 0x00000000004965f9 in ZoneServer::Process (this=0x820de0)
at /home/eq1/src/server/world/zoneserver.cpp:1200
#5 0x0000000000493776 in ZSList::Process (this=0x7bbd40)
at /home/eq1/src/server/world/zonelist.cpp:96
#6 0x00000000004501d8 in main (argc=<optimized out>, argv=<optimized out>)
at /home/eq1/src/server/world/net.cpp:448
(gdb)

provocating
01-23-2015, 12:58 AM
Okay, I was able to reproduce this with a different group. If you have a large level spread, lets say three players with one being much higher and you get the level spread message. Then if the leader removes that person and clicks accept on that mission worldserver will crash.

joligario
01-23-2015, 10:09 AM
So you mean the adventure window is still up when they remove the person from the group in order to accept the adventure?

provocating
01-23-2015, 10:39 AM
So you mean the adventure window is still up when they remove the person from the group in order to accept the adventure?

With the adventure window still open.

I narrowed it down to the ....

uint32 Database::GetCharacterID(const char *name) {


Function in database.cpp and I am using the current function to see if it fixes the issue, since I am at work I cannot test.

joligario
01-23-2015, 10:56 AM
Oh, I think it is because the original person who created the adventure request is no longer there.

EDIT: Disregard. I keep reading too fast without actually paying attention.

joligario
01-23-2015, 11:21 AM
I can't duplicate this in the current code with Titanium. Will try another client shortly.

provocating
01-23-2015, 01:53 PM
Yes, in the current code it is fixed. That was my issue, the function has changed and my guessing was sometime in December. I have so many changes to our code, I cannot keep fully current with the current source. So what I have is a bit up to date in some places. Once I get more used to C++ coding I will not be as handicapped when this happens.

The player says the issue is resolved on our test server, so I am good.

Thanks for taking the time to look on your server though, that is nice of you.