Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Linux Servers

Support::Linux Servers Support forum for Linux EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 05-28-2015, 11:29 AM
N0ctrnl's Avatar
N0ctrnl
Discordant
 
Join Date: Jan 2007
Posts: 443
Default Zone crashes - Looks buff related

Hey all. So I've been having some random zone crashes lately. I have core files, but I admit I'm no good with gdb. If anybody can help guide me on debugging, I'd greatly appreciate it.

Here's what I've got from what little I have done in gdb so far
Code:
[root@freeport server]# gdb zone core.18529
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-64.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /ssd/server/zone...done.
[New LWP 18529]
[New LWP 18537]
[New LWP 18536]
[New LWP 18535]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `./zone dynamic_13 zone'.
Program terminated with signal 11, Segmentation fault.
#0  IsBlankSpellEffect (spellid=65535, effect_index=effect_index@entry=2) at /root/Server/common/spdat.cpp:479
479             formula = spells[spellid].formula[effect_index];
(gdb) backtrace full
#0  IsBlankSpellEffect (spellid=65535, effect_index=effect_index@entry=2) at /root/Server/common/spdat.cpp:479
        effect = <optimized out>
        base = 65535
        formula = 2
#1  0x00000000009f9c5e in Mob::DoBuffTic (this=this@entry=0x4513b40, buff=..., slot=slot@entry=0, caster=0x4e2b870) at /root/Server/zone/spell_effects.cpp:3442
        i = 2
        effect = <optimized out>
        effect_value = <optimized out>
        spell = <optimized out>
#2  0x00000000009f1d19 in Mob::BuffProcess (this=this@entry=0x4513b40) at /root/Server/zone/spell_effects.cpp:3363
        buffs_i = 0
        buff_count = 26
#3  0x0000000000910440 in NPC::Process (this=0x4513b40) at /root/Server/zone/npc.cpp:593
        bonus = <optimized out>
        OOCRegen = <optimized out>
        this = 0x4513b40
#4  0x0000000000738bfc in EntityList::MobProcess (this=0x1934700 <entity_list>) at /root/Server/zone/entity.cpp:472
        id = 633
        mob = 0x4513b40
        p_val = true
#5  0x00000000006250e3 in main (argc=<optimized out>, argv=<optimized out>) at /root/Server/zone/net.cpp:424
        retval = <optimized out>
        eqss = std::shared_ptr (empty) 0x0
        zone_name = <optimized out>
        mmf = 0x37b8ea0
        worldwasconnected = true
        IDLEZONEUPDATE = 200 '\310'
        ZONEUPDATE = 10 '\n'
        Config = 0x37b3ed0
        lua_parser = 0x38789b0
        perl_parser = 0x3879440
        InterserverTimer = {start_time = 36787598, timer_time = 10000, enabled = true, set_at_trigger = 10000, pUseAcurateTiming = false}
        eqsi = <optimized out>
        stream_identifier = {m_patches = std::vector of length 12, capacity 16 = {0x41ce1e0, 0x40f64c0, 0x41c9900, 0x39ceb20, 0x41ca000, 0x39d02e0, 0x41ca910, 0x39cf0a0, 0x41cb220, 0x3bf3300, 0x41cb7c0,
            0x41c9f20}, m_streams = std::vector of length 0, capacity 1, m_identified = std::queue wrapping: std::deque with 0 elements}
        quest_timers = {start_time = 36795849, timer_time = 100, enabled = true, set_at_trigger = 100, pUseAcurateTiming = false}
        zoneupdate_timer = {start_time = 36795861, timer_time = 10, enabled = true, set_at_trigger = 10, pUseAcurateTiming = false}
Any thoughts?
Reply With Quote
  #2  
Old 05-28-2015, 11:37 AM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Hm. Looks like line 479 of common/spdat.cpp tried to determine the spell information for Spell # 65535 (aka -1), so it wasn't determined higher in the pipeline that Spell -1 isn't a valid one to try to get info on.
Reply With Quote
  #3  
Old 05-28-2015, 11:38 AM
N0ctrnl's Avatar
N0ctrnl
Discordant
 
Join Date: Jan 2007
Posts: 443
Default

Code:
#0  IsBlankSpellEffect (spellid=65535, effect_index=effect_index@entry=2) at /root/Server/common/spdat.cpp:479
479             formula = spells[spellid].formula[effect_index];
This looks to me like it's looking for spell # 65535, which doesn't exist. That sound right?
Reply With Quote
  #4  
Old 05-28-2015, 01:18 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

There are already guards in place for invalid spells (line 3409). But I'm guessing that since the Buffs_Struct uses an uint16 for spell ID this is causing issues. (Do you have a custom spell >65535?)

I will need to look into if changing it to a uint32 will cause any issues (or int32, we should really switch them all to 32-bits but yeah ...)
Reply With Quote
  #5  
Old 05-28-2015, 01:25 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Hmm... good call. That could cause a problem.

There is actually another thread that seems to indicate that there may be problems with spells with an id above 32767, suggesting that somewhere hidden away there's a spellid reference that's an sint16, even.
Reply With Quote
  #6  
Old 05-28-2015, 02:19 PM
dagulus2
Hill Giant
 
Join Date: Feb 2013
Posts: 220
Default

AFAIK you can't use spells with an ID above 32767 on any items (including spell scrolls) which is a bit of an issue.
Reply With Quote
  #7  
Old 05-28-2015, 03:40 PM
N0ctrnl's Avatar
N0ctrnl
Discordant
 
Join Date: Jan 2007
Posts: 443
Default

I did have a few spells above that number, but none were on any items. They just existed in the DB. I have nuked them and restarted everything. We'll see if that's any better.
Reply With Quote
  #8  
Old 05-29-2015, 10:26 AM
N0ctrnl's Avatar
N0ctrnl
Discordant
 
Join Date: Jan 2007
Posts: 443
Default

So that didn't fix it. Still got 2 zone crashes since yesterday. Same gdb output.
Reply With Quote
  #9  
Old 05-29-2015, 10:30 AM
kimura
Hill Giant
 
Join Date: Oct 2011
Posts: 132
Default

yeah, i'm getting similar crashes recently with following crash log

Code:
[05-29-2015 :: 01:35:14] [Crash] c:\eqnew\source\common\spdat.cpp (477): IsBlankSpellEffect 
[05-29-2015 :: 01:35:14] [Crash] c:\eqnew\source\zone\spell_effects.cpp (3442): Mob::DoBuffTic 
[05-29-2015 :: 01:35:14] [Crash] c:\eqnew\source\zone\spell_effects.cpp (3365): Mob::BuffProcess 
[05-29-2015 :: 01:35:14] [Crash] c:\eqnew\source\zone\client_process.cpp (611): Client::Process 
[05-29-2015 :: 01:35:14] [Crash] c:\eqnew\source\zone\entity.cpp (475): EntityList::MobProcess 
[05-29-2015 :: 01:35:14] [Crash] c:\eqnew\source\zone\net.cpp (425): main 
[05-29-2015 :: 01:35:14] [Crash] f:\dd\vctools\crt\crtw32\startup\crt0.c (255): __tmainCRTStartup 
[05-29-2015 :: 01:35:14] [Crash] ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 7533337A) 
[05-29-2015 :: 01:35:14] [Crash] 7533337A (kernel32): (filename not available): BaseThreadInitThunk 
[05-29-2015 :: 01:35:14] [Crash] ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 777D92E2) 
[05-29-2015 :: 01:35:14] [Crash] 777D92E2 (ntdll): (filename not available): RtlInitializeExceptionChain 
[05-29-2015 :: 01:35:14] [Crash] ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 777D92B5) 
[05-29-2015 :: 01:35:14] [Crash] 777D92B5 (ntdll): (filename not available): RtlInitializeExceptionChain
started after recent source pull
Reply With Quote
  #10  
Old 06-05-2015, 11:27 AM
N0ctrnl's Avatar
N0ctrnl
Discordant
 
Join Date: Jan 2007
Posts: 443
Default

This has been fixed for me. Haven't had any zone crashes in several days now.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 10:09 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3