EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Linux Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=588)
-   -   Strange Crash (https://www.eqemulator.org/forums/showthread.php?t=30247)

KingMort 01-03-2010 10:37 PM

Strange Crash
 
Not sure wtf this means but this is pretty much the only crash I get... Was hoping some one could help me figure out how to fix this.


Code:

Core was generated by `./zone'.
Program terminated with signal 11, Segmentation fault.
[New process 27175]
[New process 27181]
[New process 27180]
[New process 27179]
[New process 27178]
#0  0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x000000000060abf1 in Client::GetReverseFactionCon (this=0x22c02c0,
    iOther=0x7f6dfc56eda0) at faction.cpp:180
#2  0x0000000000718dd6 in Mob::CheckWillAggro (this=0x7f6dfc585390,
    mob=0x22c02c0) at aggro.cpp:312
#3  0x0000000000719042 in EntityList::CheckClientAggro (this=0xbdcfa0,
    around=0x22c02c0) at aggro.cpp:45
#4  0x00000000005c1156 in Client::Process (this=0x22c02c0)
    at client_process.cpp:672
#5  0x0000000000585ff0 in EntityList::MobProcess (this=0xbdcfa0)
    at entity.cpp:487
#6  0x00000000005d1c6c in main (argc=1, argv=0x7fff116d93a8) at net.cpp:494


trevius 01-03-2010 11:16 PM

I get that crash occasionally as well. I think it has something to do with a certain scenario when it is doing the CheckWillAggro check. I don't really know how to read those very well and didn't see any problems that stood out in the code for it, but I do get it too.

KingMort 01-04-2010 03:59 PM

On my end it's like a plague , hits at least once every couple of hours..

gaeorn 01-04-2010 07:31 PM

this part
Code:

#0  0x0000000000000000 in ?? ()
shows it can not identify the function it was in. this often times means memory corruption, if it indeed in memory corruption, it is possible the backtrace is completely incorrect. this kind of problem can be very hard to track down.

OscarGrouch05 01-05-2010 05:48 AM

make sure you have all the zone files in the map dir under eqemu..
it's telling mobs can't argo you because you are missing files
under the map dir or other files in your eq dir to go with the zone
your in. that should solve this problem.

Secrets 01-05-2010 07:29 PM

Quote:

Originally Posted by OscarGrouch05 (Post 182388)
make sure you have all the zone files in the map dir under eqemu..
it's telling mobs can't argo you because you are missing files
under the map dir or other files in your eq dir to go with the zone
your in. that should solve this problem.

Memory corruption has no relation to .map files. Trust me on this, if it's truely memory corruption, then it's going to be a completely different issue than what the coredump is getting at, most of the time.

cavedude 01-05-2010 07:50 PM

PEQ has seen this exact crash for years, and others very similar to it also calling Mob::CheckWillAggro. So you aren't alone Mort. However, in our case it's a once weekly thing and not as common as you're seeing. Derision's latest commit might actually help this some, the crash he corrected is in the same realm. Though, he worked with quest::depopall, and this crash has been happening to PEQ before that function even went in.

Derision 01-06-2010 06:14 PM

For this particular crash, you can find out what zone it occured in by executing:
Code:

gdb ./zone <core file name>
<snip>
(gdb) frame 6
#6  0x0810bc19 in main (argc=142145976, argv=0x9) at net.cpp:473
473                                            if(net.group_timer.Enabled() && net.group_timer.Check())
(gdb) print zone->short_name
$1 = 0x8431068 "potactics"
(gdb) frame 1
(gdb) print name
<should print client name involved in crash>
(gdb) print iOther->name
<should print mob name in involved in crash>

If the zone and mob name are fairly consistent, it may give you somewhere to concentrate on, e.g. any quest .pl files that mob is involved in.

KingMort 01-11-2010 01:43 AM

Ok this is what i got back for one of the crashes

Code:

Core was generated by `./zone kerraridge'.
Program terminated with signal 11, Segmentation fault.
[New process 13604]
[New process 13609]
[New process 13608]
[New process 13607]
[New process 13606]
#0  0x0000000000000000 in ?? ()
(gdb) frame 6
#6  0x00000000005d1c6c in main (argc=2, argv=0x7fff12106dc8) at net.cpp:494
494                                            entity_list.MobProcess();
(gdb) print zone->short_name
$1 = 0x233df00 "kerraridge"
(gdb) frame 1
#1  0x000000000060abf1 in Client::GetReverseFactionCon (this=0x3088740,
    iOther=0x2aafa20) at faction.cpp:180
180            if (iOther->GetPrimaryFaction() < 0)
(gdb) print name
$2 = "Muffinbut", '\0' <repeats 54 times>
(gdb) print iOther->name
$3 = "Harry\000e", '\0' <repeats 56 times>

Alright well Muffinbut is his main char and Harry is his Alt..

OscarGrouch05 01-11-2010 09:05 AM

what it's telling me is that you are not seeing the faction hits message
and when you con the mob it's should tell you if your friend or foe.
like i stated before missing files this could fall on the server side not the
client.

you read books i read machine language!

KingMort 01-11-2010 04:11 PM

No i don't read books

But anyway what I did last night was cleaned up all of our Useless factions and faction_entries there was a ton of them not even in use and I haven't seen this crash since then.. I hope that I fixed it doing this but not posative..

As for the maps thing I will have to check into that but i'm pretty sure we are all caught up on all the maps..

Does some one have a direct SVN addy for me to download all the maps ?

pfyon 01-11-2010 05:02 PM

http://code.google.com/p/eqemumaps/source/checkout

or http://eqemumaps.googlecode.com/svn/trunk/

KingMort 01-15-2010 04:34 PM

Alright well this was the latest drop.. I took out all un-needed factions in the game and found a fairly large reduction in the crashes but still...

Code:

Core was generated by `./zone kerraridge'.
Program terminated with signal 11, Segmentation fault.
[New process 5126]
[New process 5131]
[New process 5130]
[New process 5129]
[New process 5128]
#0  0x00000000008df0d6 in typeinfo name for Entity ()
(gdb) bt
#0  0x00000000008df0d6 in typeinfo name for Entity ()
#1  0x000000000060abf1 in Client::GetReverseFactionCon (this=0x7feab85bb4b0,
    iOther=0x2921ce0) at faction.cpp:180
#2  0x0000000000718dd6 in Mob::CheckWillAggro (this=0x7feab8613280,
    mob=0x7feab85bb4b0) at aggro.cpp:312
#3  0x0000000000719042 in EntityList::CheckClientAggro (this=0xbdcfa0,
    around=0x7feab85bb4b0) at aggro.cpp:45
#4  0x00000000005c1156 in Client::Process (this=0x7feab85bb4b0)
    at client_process.cpp:672
#5  0x0000000000585ff0 in EntityList::MobProcess (this=0xbdcfa0)
    at entity.cpp:487
#6  0x00000000005d1c6c in main (argc=2, argv=0x7fffca4220e8) at net.cpp:494
(gdb) frame 6
#6  0x00000000005d1c6c in main (argc=2, argv=0x7fffca4220e8) at net.cpp:494
494                                            entity_list.MobProcess();
(gdb) print zone->short_name
$1 = 0x22857e0 "kerraridge"
(gdb) frame 1
#1  0x000000000060abf1 in Client::GetReverseFactionCon (this=0x7feab85bb4b0,
    iOther=0x2921ce0) at faction.cpp:180
180            if (iOther->GetPrimaryFaction() < 0)
(gdb) print name
$2 = "Caesar", '\0' <repeats 57 times>
(gdb) print iOther->name
$3 = "Sand\000me", '\0' <repeats 56 times>
(gdb)

Caesar is a player, and so is Sand ...

Derision 01-15-2010 05:03 PM

This makes no sense to me. If we consider frame 3
Code:

#3  0x0000000000719042 in EntityList::CheckClientAggro (this=0xbdcfa0,
    around=0x7feab85bb4b0) at aggro.cpp:45

This is the code from aggro.cpp around that line:
Code:

  39        for(iterator.Reset(); iterator.MoreElements(); iterator.Advance()) {
  40                _ZP(EntityList_CheckClientAggro_Loop);
  41                Mob* mob = iterator.GetData();
  42                if(mob->IsClient())    //also ensures that mob != around
  43                        continue;
  44
  45                if(mob->CheckWillAggro(around)) {

So in your backtrace, mob->CheckWillAggro is called at line 45, but you are saying that both mobs involved are players, but line 42 checks if mob is a client and will skip line 45 and move on to the next mob if that is the case.

Strange.

I note that both the BTs you posted are for kerraridge. Do all the crashes happen there ?

Have you talked to the players involved in the crashes to see what they were doing at the time the zone crashed ?

trevius 01-15-2010 06:09 PM

Could this be due to players being charmed there by chance?

KingMort 01-15-2010 11:50 PM

No not always in Kerra Ridge it's just wherever and whenever.. Some times there some times in other zones...

I asked them what they were doing before the crash and they said nothing other than clicking on the other player.. And in all cases of this crash it seems it's players clicking on other players that cause the crash and never any NPC's involved..

Is there any more BT commands i could do to help you guys figure this one out ?? I'll do anything at this point lol

gaeorn 01-16-2010 02:33 AM

Mort's code isn't pure emu, nor is it 100% up to date (although it's much more recent than it was a few months ago). So chances are there is some other code around line 45.

KingMort 01-16-2010 03:01 AM

My code is the same as anyones honestly other than a few very minor changes... always tried to do my own thing except recently i have found that my fellow artists and myself need to hopefully gain some type of community effort hehe ..

My database however is probably pretty old school or something..

Gaeorn are you not on IRC anymore I think i have a solution for all of this if you just will contact me please :)

AndMetal 01-16-2010 03:31 AM

What's up with the nulls in the characters' names?

Code:

(gdb) print iOther->name
$3 = "Harry\000e", '\0' <repeats 56 times>

Code:

(gdb) print iOther->name
$3 = "Sand\000me", '\0' <repeats 56 times>


KingMort 01-16-2010 06:37 PM

Here is a few more that seem a bit different

Code:

Core was generated by `./zone'.
Program terminated with signal 11, Segmentation fault.
[New process 5453]
[New process 5459]
[New process 5458]
[New process 5457]
[New process 5456]
#0  0x00000000014fff60 in ?? ()
(gdb) bt
#0  0x00000000014fff60 in ?? ()
#1  0x00000000008b77cf in Bot::AI_Process (this=0x18c3400) at bot.cpp:2147
#2  0x00000000008bd48b in Bot::Process (this=0x18c3400) at bot.cpp:1120
#3  0x0000000000585ff0 in EntityList::MobProcess (this=0xbdcfa0)
    at entity.cpp:487
#4  0x00000000005d1c6c in main (argc=1, argv=0x7fffa7da1a68) at net.cpp:494
(gdb) frame 6
#0  0x0000000000000000 in ?? ()
(gdb) print zone->short_name
$1 = 0x7fbd95691c30 "dreadspire"
(gdb) frame 1
#1  0x00000000008b77cf in Bot::AI_Process (this=0x18c3400) at bot.cpp:2147
2147            if(BotOwner->qglobal || (GetAppearance() == eaDead) || BotOwner->IsBot())
(gdb) print name
$2 = "SandsHealerGoon\00000", '\0' <repeats 45 times>
(gdb) print iOther->name
No symbol "iOther" in current context.
(gdb)

Code:


Core was generated by `./zone'.
Program terminated with signal 11, Segmentation fault.
[New process 5446]
[New process 5452]
[New process 5451]
[New process 5450]
[New process 5449]
#0  0x00007f32506a2020 in ?? ()
(gdb) bt
#0  0x00007f32506a2020 in ?? ()
#1  0x00000000008b77cf in Bot::AI_Process (this=0x7f3250ddebe0) at bot.cpp:2147
#2  0x00000000008bd48b in Bot::Process (this=0x7f3250ddebe0) at bot.cpp:1120
#3  0x0000000000585ff0 in EntityList::MobProcess (this=0xbdcfa0)
    at entity.cpp:487
#4  0x00000000005d1c6c in main (argc=1, argv=0x7fff626e93b8) at net.cpp:494
(gdb) frame 6
#0  0x0000000000000000 in ?? ()
(gdb) print zone->short_name
$1 = 0x7f32496c7330 "kerraridge"
(gdb) frame 1
#1  0x00000000008b77cf in Bot::AI_Process (this=0x7f3250ddebe0) at bot.cpp:2147
2147            if(BotOwner->qglobal || (GetAppearance() == eaDead) || BotOwner->IsBot())
(gdb) print name
$2 = "SandsHealerGoon\00000", '\0' <repeats 45 times>
(gdb)


KingMort 01-18-2010 11:51 AM

Yet another strange Crash

Code:

Core was generated by `./zone'.
Program terminated with signal 11, Segmentation fault.
[New process 3775]
[New process 3781]
[New process 3780]
[New process 3779]
[New process 3778]
#0  0x00007fc3f80007e0 in ?? ()
(gdb) bt
#0  0x00007fc3f80007e0 in ?? ()
#1  0x00000000008b30f5 in Bot::ProcessClientZoneChange (
    botOwner=0x7fc3fd0c7ac0) at bot.cpp:8276
#2  0x0000000000823e58 in Client::Handle_OP_ZoneChange (this=0x7fc3fd0c7ac0,
    app=0x7fc40271b2f0) at zoning.cpp:38
#3  0x00000000006f8266 in Client::HandlePacket (this=0x7fc3fd0c7ac0,
    app=0x7fc40271b2f0) at client_packet.cpp:435
#4  0x00000000005c1050 in Client::Process (this=0x7fc3fd0c7ac0)
    at client_process.cpp:662
#5  0x0000000000585ff0 in EntityList::MobProcess (this=0xbdcfa0)
    at entity.cpp:487
#6  0x00000000005d1c6c in main (argc=1, argv=0x7fff127cf498) at net.cpp:494
(gdb) frame 6
#6  0x00000000005d1c6c in main (argc=1, argv=0x7fff127cf498) at net.cpp:494
494                                            entity_list.MobProcess();
(gdb) print zone->short_name
$1 = 0x7fc3fd45cbd0 "kerraridge"
(gdb) frame 1
#1  0x00000000008b30f5 in Bot::ProcessClientZoneChange (
    botOwner=0x7fc3fd0c7ac0) at bot.cpp:8276
8276                                    if(tempBot->HasGroup())
(gdb) print name
$2 = 0x9325da "Live"


gaeorn 01-18-2010 12:50 PM

Quote:

Originally Posted by KingMort (Post 182922)
Gaeorn are you not on IRC anymore I think i have a solution for all of this if you just will contact me please :)

I'm on all day during weekdays. Just need to look me up by name if you don't see me in a particular channel.

OscarGrouch05 01-22-2010 09:44 AM

simple and sweet

it's like this the zone # and name is not found by the server.
i looked in the exe and can match up opcodes with zone name
short and long name of zone and zone number. the address are
corrcect for the long name but missing the short name of the zone
was expecting the short name of the zone in the code.

question on the bot AI are you refer i have seen the opcodes for that as well inside exe file.
looks like programer need to rewrite that looks like is calling wrong opcodes and needs
to be fix and recompiled.

what program do you guys use i use this etu program 80)

KingMort 01-24-2010 07:19 PM

So how do I go about fixing this ? Download maps or what

KingMort 01-26-2010 10:34 PM

Just an update, I replaced all my map files with the latest current stuff and it seems some of the crashing has cleared up thanks for that suggestion..

I have some NEW ones I guess (maybe not though could be still related) only difference here is that it seems like it's a mob now instead of a player..



Code:

Core was generated by `./zone'.
Program terminated with signal 11, Segmentation fault.
[New process 5084]
[New process 5090]
[New process 5089]
[New process 5088]
[New process 5087]
#0  0x0000000000718752 in EntityList::AIYellForHelp (this=0xbdcfa0,
    sender=0x7f39ddec56a0, attacker=0x84d4210) at aggro.cpp:450
450                    if (
(gdb) bt
#0  0x0000000000718752 in EntityList::AIYellForHelp (this=0xbdcfa0,
    sender=0x7f39ddec56a0, attacker=0x84d4210) at aggro.cpp:450
#1  0x00000000005c7292 in NPC::Process (this=0x7f39ddec56a0) at npc.cpp:620
#2  0x0000000000585ff0 in EntityList::MobProcess (this=0xbdcfa0)
    at entity.cpp:487
#3  0x00000000005d1c6c in main (argc=1, argv=0x7fff00976648) at net.cpp:494
(gdb) frame 6
#0  0x0000000000000000 in ?? ()
(gdb) print zone->short_name
$1 = 0x47ce510 "steamfont"
(gdb) frame 1
#1  0x00000000005c7292 in NPC::Process (this=0x7f39ddec56a0) at npc.cpp:620
620                    entity_list.AIYellForHelp(this, GetTarget());
(gdb) print name
$2 = "a_large_rat001", '\0' <repeats 49 times>
(gdb)


gaeorn 01-28-2010 01:14 PM

At least that crash has a function name we can check into. I'll see if I can look into this in the next day or so.

Congdar 01-28-2010 02:16 PM

http://code.google.com/p/projecteqem...s/detail?id=28

OscarGrouch05 01-28-2010 04:50 PM

that is a ref to what andmetal said above on 1-16-2010
What's up with the nulls in the characters' names?

KingMort 02-03-2010 02:08 PM

Wow still getting these , and Now i know for sure it is BOT related, which on my end they are called GOONS but all i did was change the #bot commands and descriptions to #goon didn't mess with anything else... anyway here is the most recent crash which was just after giving the player his new goon from my RA promo...

Code:

Core was generated by `./zone'.
Program terminated with signal 11, Segmentation fault.
[New process 26798]
[New process 26804]
[New process 26803]
[New process 26802]
[New process 26801]
#0  0x00007f74e4000850 in ?? ()
(gdb) bt
#0  0x00007f74e4000850 in ?? ()
#1  0x000000000060abf1 in Client::GetReverseFactionCon (this=0x7f74e443f260,
    iOther=0x7f74e43f42b0) at faction.cpp:180
#2  0x0000000000718d5e in Mob::CheckWillAggro (this=0x7f74e41a2c30,
    mob=0x7f74e443f260) at aggro.cpp:312
#3  0x0000000000718fca in EntityList::CheckClientAggro (this=0xbdcfa0,
    around=0x7f74e443f260) at aggro.cpp:45
#4  0x00000000005c1156 in Client::Process (this=0x7f74e443f260)
    at client_process.cpp:672
#5  0x0000000000585ff0 in EntityList::MobProcess (this=0xbdcfa0)
    at entity.cpp:487
#6  0x00000000005d1c6c in main (argc=1, argv=0x7ffff75141e8) at net.cpp:494
(gdb) frame 6
#6  0x00000000005d1c6c in main (argc=1, argv=0x7ffff75141e8) at net.cpp:494
494                                            entity_list.MobProcess();
(gdb) print zone->short_name
$1 = 0x1aff910 "erudsxing"
(gdb) frame 1
#1  0x000000000060abf1 in Client::GetReverseFactionCon (this=0x7f74e443f260,
    iOther=0x7f74e43f42b0) at faction.cpp:180
180            if (iOther->GetPrimaryFaction() < 0)
(gdb) print name
$2 = "Xion\000me", '\0' <repeats 56 times>
(gdb) print iOther->name
$3 = "Shao\000me", '\0' <repeats 56 times>
(gdb)


OscarGrouch05 02-03-2010 10:56 PM

did you change this too i think your error is coming from this
they still have the name bot like Botowner an exmple.

#1 0x00000000008b77cf in Bot::AI_Process (this=0x18c3400) at bot.cpp:
2147 if(BotOwner->qglobal || (GetAppearance() == eaDead) || BotOwner->IsBot())

KingMort 02-04-2010 02:23 PM

Would you be able to post a code fix for this ?? I can put stuff into files and compile ok just not very good with C++ in general if you would tell me what code to fix and with what would be a huge help..

:) Thank you guys appreciate it

OscarGrouch05 02-04-2010 08:53 PM

look at the code edit and fine BotOwner->IsBot()) - changes that need to be done or corrected Isbot change to Isgoon recompile program that should help fix the problem. i'm just good at reading the error code i program in Pascal i would have to covert to my lang so i could understand what it's doing i hope someone else can correct this for you. after changing in program you should be able to run the debug program to check the code.

your error are coming from (GetAppearance() == eaDead) || BotOwner->IsBot()) =GDB
look what you have been posting you'll see (gdb) there is your problem.

OscarGrouch05 02-04-2010 10:49 PM

KingMort are you using EQEmu-Rev1180a-Bots? or if your pulling the code from the exe all smiles here 80)

gaeorn 02-05-2010 12:15 AM

The function names containing the word 'bot' does not matter. If you have changed the commands to "goon" it will work fine. If you had changed some of the functions but not all references to the functions, the code would not compile due to unreferenced symbols. No offense, but OscarGrouch05 does not know what he is talking about in this regard.

OscarGrouch05 02-05-2010 12:53 AM

Ref code 2147 if(BotOwner->qglobal || (GetAppearance() == eaDead) || BotOwner->IsBot()) does stand for GetApperance,Dead,Bot = gdb this is where your errors are coming from i would like and update when you solve this problem Thank You!

KingMort 02-05-2010 05:00 PM

Yeah hehe i just want to see this bug fixed it's terrible having players crash every 15 minutes..

Probably one of the major reasons my servers population is so low atm

OscarGrouch05 02-06-2010 03:10 PM

1. make sure you installed InnoDB using your perl client
2. double check your database table's

I)Database changes

-- Table "botinventory" DDL

CREATE TABLE `botinventory` (
`npctypeid` int(11) NOT NULL default '0',
`botslotid` int(11) default NULL,
`itemid` int(11) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- Table "botleader" DDL

CREATE TABLE `botleader` (
`botid` int(11) NOT NULL default '0',
`leaderid` int(11) default NULL,
PRIMARY KEY (`botid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-----> Table "botsowners" DDL <-------- double check this one and the one below

CREATE TABLE `botsowners` (
`botnpctypeid` int(11) NOT NULL default '0',
`botleadercharacterid` int(11) NOT NULL default '0',
PRIMARY KEY (`botnpctypeid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--- The table npc_types must have a new field:
ALTER TABLE npc_types add `isbot` tinyint(4) NOT NULL;

KingMort 02-06-2010 06:05 PM

I thought botsowners wasn't used anymore .. isn't it just "bots" now or ??

If not then somethings out of whack i have 188 records in bots and 161 in botsowners

At any rate i switched them to Innodb

KingMort 02-11-2010 11:19 PM

Just another update it seems like this crash is happening when people camp with goons in group or when multiple people camp at the same time

KingMort 02-13-2010 06:28 PM

It's worse than ever before at this time... 15 crashed zones in less than 24 hours.

King


All times are GMT -4. The time now is 12:56 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.