|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Support::Linux Servers Support forum for Linux EQEMu users. |
|
|
|
05-28-2015, 11:29 AM
|
|
Discordant
|
|
Join Date: Jan 2007
Posts: 443
|
|
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?
|
|
|
|
05-28-2015, 11:37 AM
|
Dragon
|
|
Join Date: Apr 2009
Location: California
Posts: 814
|
|
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.
|
05-28-2015, 11:38 AM
|
|
Discordant
|
|
Join Date: Jan 2007
Posts: 443
|
|
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?
|
05-28-2015, 01:18 PM
|
Demi-God
|
|
Join Date: Apr 2008
Location: MA
Posts: 1,164
|
|
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 ...)
|
05-28-2015, 01:25 PM
|
Dragon
|
|
Join Date: Apr 2009
Location: California
Posts: 814
|
|
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.
|
05-28-2015, 02:19 PM
|
Hill Giant
|
|
Join Date: Feb 2013
Posts: 220
|
|
AFAIK you can't use spells with an ID above 32767 on any items (including spell scrolls) which is a bit of an issue.
|
05-28-2015, 03:40 PM
|
|
Discordant
|
|
Join Date: Jan 2007
Posts: 443
|
|
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.
|
05-29-2015, 10:26 AM
|
|
Discordant
|
|
Join Date: Jan 2007
Posts: 443
|
|
So that didn't fix it. Still got 2 zone crashes since yesterday. Same gdb output.
|
|
|
|
05-29-2015, 10:30 AM
|
Hill Giant
|
|
Join Date: Oct 2011
Posts: 132
|
|
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
|
|
|
|
06-05-2015, 11:27 AM
|
|
Discordant
|
|
Join Date: Jan 2007
Posts: 443
|
|
This has been fixed for me. Haven't had any zone crashes in several days now.
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 12:02 PM.
|
|
|
|
|
|
|
|
|
|
|
|
|