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?


All times are GMT -4. The time now is 03:50 AM.

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