Issue information

Issue ID
#8026
Status
Needs more Info
Severity
None
Started
Eiphes
Feb 16, 2014 23:42
Last Post
Eiphes
Feb 22, 2014 5:23
Confirmation
N/A

Eiphes - Feb 16, 2014 23:42

#1 0x00000000005a1bd9 in skill_unit_timer_sub_onplace (bl=0x7fffee2f1afc,
ap=<value optimized out>) at skill.c:15601
su = 0x7fffeed27c44
group = 0x7fffeef1ab14
tick = 403278263
#2 0x00000000005068cb in bl_vforeach (
func=0x5a1b00 <skill_unit_timer_sub_onplace>, blockcount=0,
max=2147483647, args=<value optimized out>) at map.c:452
argscopy = {{gp_offset = 48, fp_offset = 48,
overflow_arg_area = 0x7fffffffde10,
reg_save_area = 0x7fffffffdd50}}
i = 1
returnCount = <value optimized out>
#3 0x0000000000510fab in map_vforeachinshootrange (
func=0x5a1b00 <skill_unit_timer_sub_onplace>,
center=<value optimized out>, range=<value optimized out>,
type=<value optimized out>, ap=0x7fffffffdd30) at map.c:823
returnCount = 0
blockcount = 0
apcopy = {{gp_offset = 32, fp_offset = 48,
overflow_arg_area = 0x7fffffffde10,
reg_save_area = 0x7fffffffdd50}}
#4 0x000000000051147d in map_foreachinshootrange (func=<value optimized out>,
center=<value optimized out>, range=<value optimized out>,

type=<value optimized out>) at map.c:846
returnCount = 100
ap = {{gp_offset = 32, fp_offset = 48,
overflow_arg_area = 0x7fffffffde10,
reg_save_area = 0x7fffffffdd50}}
#5 0x00000000005a442a in skill_unit_timer_sub (key=<value optimized out>,
data=<value optimized out>, ap=<value optimized out>) at skill.c:15800
su = 0x7fffeed27c44
group = 0x7fffeef1ab14
tick = 403278263
dissonance = false
bl = 0x7fffeed27c44
#6 0x000000000061802a in db_obj_vforeach (self=0x1debe98,
func=0x5a4290 <skill_unit_timer_sub>, args=0x7fffffffdf10) at db.c:2033
argscopy = {{gp_offset = 24, fp_offset = 48,
overflow_arg_area = 0x7fffffffdff0,
reg_save_area = 0x7fffffffdf30}}
db = 0x1debe98
sum = 0
node = 0x54f4da8
parent = <value optimized out>
#7 0x0000000000616df1 in db_obj_foreach (self=<value optimized out>,
func=<value optimized out>) at db.c:2079
args = {{gp_offset = 16, fp_offset = 48,
overflow_arg_area = 0x7fffffffdff0,
reg_save_area = 0x7fffffffdf30}}
#8 0x00000000005a1c71 in skill_unit_timer (tid=<value optimized out>,
tick=403278263, id=<value optimized out>, data=<value optimized out>)
at skill.c:15826
No locals.
#9 0x000000000062a2d2 in do_timer (tick=403278281) at timer.c:393
tid = 11
diff = -18
__FUNCTION__ = "do_timer"
#10 0x000000000061ed70 in main (argc=<value optimized out>,
argv=<value optimized out>) at core.c:369
next = <value optimized out>

Here's a .zip containing the files noted in the crash report: [url="http://casualro.com/gm/jtynne/Feb%2016th%20Crash.zip"]http://casualro.com/gm/jtynne/Feb%2016th%20Crash.zip[/url]

This post has been edited by Eiphes on Feb 16, 2014 23:44

Haru - Feb 17, 2014 0:43

There should be a few more lines above those, this backtrace lacks info about frame #0. Do you still have it?

Eiphes - Feb 17, 2014 2:23

bt full

#0 0x00000000005abdc8 in skill_unit_onplace_timer (src=0x7fffeed27c44,
bl=0x7fffee2f1afc, tick=403278263) at skill.c:11379
count = 1
x = 41
y = 71
sg = 0x7fffeef1ab14
ss = 0x2e150f0
tsd = <value optimized out>
tstatus = 0x7fffee2f0047
tsc = <value optimized out>
ts = <value optimized out>
type = SC_GLORIA
skill_id = 430
diff = <value optimized out>
__FUNCTION__ = "skill_unit_onplace_timer"
#1 0x00000000005a1bd9 in skill_unit_timer_sub_onplace (bl=0x7fffee2f1afc,
ap=<value optimized out>) at skill.c:15601
su = 0x7fffeed27c44
group = 0x7fffeef1ab14
tick = 403278263
#2 0x00000000005068cb in bl_vforeach (
func=0x5a1b00 <skill_unit_timer_sub_onplace>, blockcount=0,
max=2147483647, args=<value optimized out>) at map.c:452
argscopy = {{gp_offset = 48, fp_offset = 48,
overflow_arg_area = 0x7fffffffde10,
reg_save_area = 0x7fffffffdd50}}
i = 1
returnCount = <value optimized out>
#3 0x0000000000510fab in map_vforeachinshootrange (
func=0x5a1b00 <skill_unit_timer_sub_onplace>,
center=<value optimized out>, range=<value optimized out>,
type=<value optimized out>, ap=0x7fffffffdd30) at map.c:823
returnCount = 0
blockcount = 0
apcopy = {{gp_offset = 32, fp_offset = 48,
overflow_arg_area = 0x7fffffffde10,
reg_save_area = 0x7fffffffdd50}}
#4 0x000000000051147d in map_foreachinshootrange (func=<value optimized out>,
center=<value optimized out>, range=<value optimized out>,

type=<value optimized out>) at map.c:846
returnCount = 100
ap = {{gp_offset = 32, fp_offset = 48,
overflow_arg_area = 0x7fffffffde10,
reg_save_area = 0x7fffffffdd50}}
#5 0x00000000005a442a in skill_unit_timer_sub (key=<value optimized out>,
data=<value optimized out>, ap=<value optimized out>) at skill.c:15800
su = 0x7fffeed27c44
group = 0x7fffeef1ab14
tick = 403278263
dissonance = false
bl = 0x7fffeed27c44
#6 0x000000000061802a in db_obj_vforeach (self=0x1debe98,
func=0x5a4290 <skill_unit_timer_sub>, args=0x7fffffffdf10) at db.c:2033
argscopy = {{gp_offset = 24, fp_offset = 48,
overflow_arg_area = 0x7fffffffdff0,
reg_save_area = 0x7fffffffdf30}}
db = 0x1debe98
sum = 0
node = 0x54f4da8
parent = <value optimized out>
#7 0x0000000000616df1 in db_obj_foreach (self=<value optimized out>,
func=<value optimized out>) at db.c:2079
args = {{gp_offset = 16, fp_offset = 48,
overflow_arg_area = 0x7fffffffdff0,
reg_save_area = 0x7fffffffdf30}}
#8 0x00000000005a1c71 in skill_unit_timer (tid=<value optimized out>,
tick=403278263, id=<value optimized out>, data=<value optimized out>)
at skill.c:15826
No locals.
#9 0x000000000062a2d2 in do_timer (tick=403278281) at timer.c:393
tid = 11
diff = -18
__FUNCTION__ = "do_timer"
#10 0x000000000061ed70 in main (argc=<value optimized out>,
argv=<value optimized out>) at core.c:369
next = <value optimized out>

Here we go! :D

This post has been edited by Eiphes on Feb 17, 2014 2:24

Eiphes - Feb 17, 2014 3:39

Another Crash

#0 0x00000000005abdc8 in skill_unit_onplace_timer (src=0x7fffef0ffdd4, bl=0x7fffeda27a5c, tick=11848237) at skill.c:11379
count = 1
x = 31
y = 152
sg = 0x7fffeee7020c
ss = 0x41f1320
tsd = <value optimized out>
tstatus = 0x7fffeda20098
tsc = <value optimized out>
ts = <value optimized out>
type = SC_CRUCIS
skill_id = 430
diff = <value optimized out>
__FUNCTION__ = "skill_unit_onplace_timer"
#1 0x00000000005a1bd9 in skill_unit_timer_sub_onplace (bl=0x7fffeda27a5c, ap=<value optimized out>) at skill.c:15601
su = 0x7fffef0ffdd4
group = 0x7fffeee7020c
tick = 11848237
#2 0x00000000005068cb in bl_vforeach (func=0x5a1b00 <skill_unit_timer_sub_onplace>, blockcount=0, max=2147483647, args=<value optimized out>) at map.c:452
argscopy = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fffffffde00, reg_save_area = 0x7fffffffdd40}}
i = 8
returnCount = <value optimized out>
#3 0x0000000000510fab in map_vforeachinshootrange (func=0x5a1b00 <skill_unit_timer_sub_onplace>, center=<value optimized out>, range=<value optimized out>,
type=<value optimized out>, ap=0x7fffffffdd20) at map.c:823
returnCount = 0
blockcount = 0
apcopy = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffde00, reg_save_area = 0x7fffffffdd40}}
#4 0x000000000051147d in map_foreachinshootrange (func=<value optimized out>, center=<value optimized out>, range=<value optimized out>, type=<value optimized out>)
at map.c:846
returnCount = 100
ap = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffde00, reg_save_area = 0x7fffffffdd40}}
#5 0x00000000005a442a in skill_unit_timer_sub (key=<value optimized out>, data=<value optimized out>, ap=<value optimized out>) at skill.c:15800
su = 0x7fffef0ffdd4
group = 0x7fffeee7020c
tick = 11848237
dissonance = false
bl = 0x7fffef0ffdd4
#6 0x000000000061802a in db_obj_vforeach (self=0x1debe98, func=0x5a4290 <skill_unit_timer_sub>, args=0x7fffffffdf00) at db.c:2033
argscopy = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffdfe0, reg_save_area = 0x7fffffffdf20}}
db = 0x1debe98
sum = 0
node = 0x50ce128
parent = <value optimized out>

#7 0x0000000000616df1 in db_obj_foreach (self=<value optimized out>, func=<value optimized out>) at db.c:2079
args = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7fffffffdfe0, reg_save_area = 0x7fffffffdf20}}
#8 0x00000000005a1c71 in skill_unit_timer (tid=<value optimized out>, tick=11848237, id=<value optimized out>, data=<value optimized out>) at skill.c:15826
No locals.
#9 0x000000000062a2d2 in do_timer (tick=11848249) at timer.c:393
tid = 11
diff = -12
__FUNCTION__ = "do_timer"
#10 0x000000000061ed70 in main (argc=<value optimized out>, argv=<value optimized out>) at core.c:369
next = <value optimized out>

glemor123 - Feb 17, 2014 5:31

[code=:0] (gdb) bt full #0 0x00000000 in ?? () No symbol table info available. #1 0x081a57ec in get_val (st=0xb4be89ac, data=0x0) at script.c:2544 name = 0xbc6ada8 "" prefix = <value optimized out> postfix = 0 '\000' sd = 0xbc6ada8 __FUNCTION__ = "get_val" #2 0x081b0b30 in op_2 (st=0xb4be89ac, op=18) at script.c:3454 left = 0xb3fa37f4 leftref = {type = C_NOP, u = {num = 7313189308, str = 0xb3e669bc "\004", ri = 0xb3e669bc}, ref = 0x0} right = 0xb3fa3804 __FUNCTION__ = "op_2" #3 0x081bb90a in run_script_main (st=0xb4be89ac) at script.c:3921 c = C_LT cmdcount = 655217 gotocount = 2046 sd = <value optimized out> stack = 0xb3e669bc nd = <value optimized out> #4 0x08235202 in status_calc_pc_ (sd=0xbc6ada8, opt=SCO_NONE) at status.c:2667 c = <value optimized out> data = 0xb591ad64 calculating = 1 bstatus = 0xbc6c294 b_skill = {{id = 0, lv = 0 '\000', flag = 0 '\000'}, {id = 1, lv = 9 '\t', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'} <repeats 46 times>, { id = 48, lv = 10 '\n', flag = 0 '\000'}, {id = 49, lv = 10 '\n', flag = 0 '\000'}, {id = 50, lv = 10 '\n', flag = 0 '\000'}, {id = 51, lv = 10 '\n', flag = 0 '\000'}, {id = 52, lv = 10 '\n', flag = 0 '\000'}, {id = 53, lv = 1 '\001', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'} <repeats 78 times>, {id = 132, lv = 5 '\005', flag = 0 '\000'}, {id = 133, lv = 5 '\005', flag = 0 '\000'}, {id = 134, lv = 10 '\n', flag = 0 '\000'}, {id = 135, lv = 10 '\n', flag = 0 '\000'}, {id = 136, lv = 10 '\n', flag = 0 '\000'}, {id = 137, lv = 5 '\005', flag = 0 '\000'}, { id = 138, lv = 10 '\n', flag = 0 '\000'}, {id = 139, lv = 10 '\n', flag = 0 '\000'}, {id = 140, lv = 10 '\n', flag = 0 '\000'}, {id = 141, lv = 10 '\n', flag = 0 '\000'}, {id = 142, lv = 1 '\001', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'}, {id = 149, lv = 1 '\001', flag = 0 '\000'}, {id = 150, lv = 1 '\001', flag = 0 '\000'}, {id = 151, lv = 1 '\001', flag = 0 '\000'}, { id = 152, lv = 1 '\001', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'} <repeats 223 times>, {id = 376, lv = 5 '\005', flag = 0 '\000'}, { id = 0, lv = 0 '\000', flag = 0 '\000'}, {id = 378, lv = 5 '\005', flag = 0 '\000'}, {id = 379, lv = 10 '\n', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'} <repeats 26 times>, {id = 406, lv = 10 '\n', flag = 0 '\000'}, {id = 407, lv = 1 '\001', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'} <repeats 595 times>, {id = 1003, lv = 1 '\001', flag = 0 '\000'}, {id = 1004, lv = 1 '\001', flag = 0 '\000'}, {id = 0, lv = 0 '\000', flag = 0 '\000'} <repeats 473 times>} b_cart_weight_max = 300000 i = <value optimized out> k = <value optimized out> index = <value optimized out> [/code]

Eiphes - Feb 18, 2014 4:00

Update: I've set all Star Gladiator skills to passive instead of active, and thus far no crashes. Any update/assistance with this will earn warm fuzzy feelings of appreciation. <3

pan - Feb 19, 2014 0:03

I'm not being able to reproduce this crash, are you using our latest git? Also could you specify what were you doing in-game when this crash occurred? Did you make any changes in your server?
I'm trying to use SG_STAR_WARM with status changes or without, attacking and being attacked by multiple monsters but nothing is happening.

Ind - Feb 19, 2014 2:29

i have a question, can you show me your skill.c contents on line 11375 thru 11385?

Eiphes - Feb 19, 2014 3:57

I've uploaded all the files in a zip noted in the OP @ Ind

@pan: I don't actively play my server, so I have no idea what my community members were doing at the time of the crash.

Ind - Feb 19, 2014 17:00

thanks!
so the line in question is[code=auto:0] && ++count < SKILLUNITTIMER_INTERVAL/sg->interval && !status->isdead(bl) ); [/code]from this chunk[code=auto:0] case SG_SUN_WARM: //SG skills [Komurka] case SG_MOON_WARM: case SG_STAR_WARM: { int count = 0; const int x = bl->x, y = bl->y; //If target isn't knocked back it should hit every "interval" ms [Playtester] do { if( bl->type == BL_PC ) status_zap(bl, 0, 15); // sp damage to players else if( status->charge(ss, 0, 2) ) { // mobs // costs 2 SP per hit if( !skill->attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick+count*sg->interval,0) ) status->charge(ss, 0, 8); //costs additional 8 SP if miss } else { // mobs //should end when out of sp. sg->limit = DIFF_TICK32(tick,sg->tick); break; } } while( x == bl->x && y == bl->y && ++count < SKILLUNITTIMER_INTERVAL/sg->interval && !status->isdead(bl) ); } break; [/code]I wonder, shouldn't we map->freeblock_lock/unlock the do {} while? either status->charge or skill->attack could cause (thru reflection/autospell-when-hit/etca) the source of the warmth to die -- hmm I'm not sure about the lock actually, would there be a more clear way of checking whether the unit is still alive? I'm not sure

Ind - Feb 19, 2014 17:13

I have another question, whats your clear_skills_on_death setting in conf/battle/skill.conf?

Ind - Feb 19, 2014 18:19

Might have been fixed in [url="https://github.com/HerculesWS/Hercules/commit/a180d7f8f651fa7a79efdd275cd707559025c388"]https://github.com/HerculesWS/Hercules/commit/a180d7f8f651fa7a79efdd275cd707559025c388[/url] (I was able to reproduce a similar crash when clear_skills_on_death was enabled, however depending on your answer to my post above it might not be the same problem

Eiphes - Feb 22, 2014 5:23

// Should ground placed skills be removed as soon as the caster dies? (Note 3)
clear_skills_on_death: 0