Issue Information
-
#005441
-
0 - None Assigned
-
Done
Issue Confirmations
-
Yes (1)No (0)
Map Server Crashes on status_change_timer mismatch
Since [rev=15686]
I'm using Champion after attacking some monsters this error shows at the server logs.
status_change_timer: Mismatch for type 93: 47 != 655371
just normal attacks?
Yea, just normal attacks.
Edited by kroxt, 14 March 2012 - 08:30 AM.
sc_type 93
is "SC_COMBO"
I think that's the reason why the map crashes.
[Error]: delete_timer error : no such timer 327692 (0x80a9fb0(status_change_timer))
[Debug]: status_change_timer: Null pointer id: 2000758 data: 93 bl-type: 1
[Error]: Server received crash signal! Attempting to save all online characters!
I have reverted my SVN to r15681. While the bug is still there. I'm using Client 2011-05-17
I cannot reproduce this just by poking things with a champion. Can you provide additional details as to what exactly you are doing?
I tried using Assassin Cross, it works fine. But when I use my champ it crashes the server. This happened when I updated r15681 to r15686. The only thing I do is attack the monsters with normal attacks. The error is always "delete_time error" or "status_change_timer" after that the server crashes. Sometimes the error doesn't appear only this:
[Error]: Server received crash signal! Attempting to save all online characters!
Then the char-server & map-server crashes.
Because I can log on but can not go on in character selection.
Thanks.
Please update to [rev=15687]+. In r15687 a bug that could cause crashes and memory corruption has been fixed.
I tried the r15687 it still gives crashes. I'm now trying the r15689, seems fine.. I'll report if it still crash again.
There was actually a timer mismatch I fixed in r15689, but that should only affect SC_BURNING, not combos...
in r15688 you fixed the thing about status changes. maybe it'll work, but not :'(
[Error]: delete_timer error : no such timer 327691 (0x80aab70(status_change_timer))
[Debug]: status_change_timer: Null pointer id: 2000758 data: 93 bl-type: 1
[Error]: status_change_timer: Mismatch for type 93: 71 != 11 (bl id 2000758)
[Error]: delete_timer error : function mismatch 0x80823e0(pc_autosave) != 0x80aab70(status_change_timer)
[Error]: delete_timer error : function mismatch 0x80823e0(pc_autosave) != 0x80aab70(status_change_timer)
[Debug]: status_change_timer: Null pointer id: 110012637 data: 1 bl-type: 2
[Error]: Server received crash signal! Attempting to save all online characters!
This was the error message in r15689
Please enable timestamps in console, and enable coredumps so we can analyze backtrace. Otherwise it will be just pointless guessing.
how to enable it? sorry -.-
Edited by kroxt, 15 March 2012 - 03:12 PM.
You can enable backtrace in this way:
http://rathena.org/b.../page__p__54065
http://rathena.org/wiki/GDB
I typed this:
./configure --enable-debug=gdb
then I typed
[color=#000000]gdb map-server_sql map-server_sql.core[/color][color=#000000] [/color]
then
bt full
Nothing's happening.. I can't get it work.
I'm in circles.. please help me Mark. Thanks.
Edited by kroxt, 15 March 2012 - 04:01 PM.
I can't find where the core file is.
Sorry if thats only a false assumption, but.. Did you start the server and make it crash since recompiling? The core file will be only there if the server crashes.
This is what I got:
#0 ers_obj_alloc_entry (self=0xb7b7486c) at ers.c:191 ret = (void *) 0xb __FUNCTION__ = "ers_obj_alloc_entry" #1 0x080a6706 in status_change_start (bl=0xcfb3178, type=SC_COMBO, rate=10 val1=263, val2=<value optimized out>, val3=<value optimized out>, val4= tick=301, flag=0) at status.c:7926 sd = (struct map_session_data *) 0xcfb3178 sc = (struct status_change *) 0xcfb341c sce = (struct status_change_entry *) 0x0 status = (struct status_data *) 0xcfb33c8 vd = (struct view_data *) 0xcfb335c opt_flag = 0 calc_flag = 0 undead_flag = 0 val_flag = 0 tick_time = <value optimized out> __FUNCTION__ = "status_change_start" types = {SC_AUTOGUARD, SC_DEFENDER, SC_REFLECTSHIELD, SC_ENDURE} #2 0x08105850 in skill_attack (attack_type=1, src=0xcfb3178, dsrc=0xcfb317 bl=0xac537c84, skillid=263, skilllv=5, tick=4267068379, flag=0) at skil flag = 1 sce = <value optimized out> dmg = {damage = 508, damage2 = 0, type = 0, div_ = 3, amotion = 538 dmotion = 384, blewcount = 0, flag = 273, dmg_lv = ATK_DEF} sstatus = (struct status_data *) 0xcfb33c8 tstatus = (struct status_data *) 0xac537e6c sc = (struct status_change *) 0xac537ec4 sd = (struct map_session_data *) 0xcfb3178 tsd = (struct map_session_data *) 0x0 type = 8 damage = 508 rdamage = 0 __FUNCTION__ = "skill_attack" #3 0x08153728 in battle_weapon_attack (src=0xcfb3178, target=0xac537c84, tick=4267068379, flag=0) at battle.c:4021 triple_rate = 25 sd = (struct map_session_data *) 0xcfb3178 tsd = (struct map_session_data *) 0x0 sstatus = (struct status_data *) 0xcfb33c8 tstatus = (struct status_data *) 0xac537e6c sc = (struct status_change *) 0x0 tsc = (struct status_change *) 0xac537ec4 damage = <value optimized out> rdamage = <value optimized out> rdelay = <value optimized out> skillv = 5 wd = {damage = -1, damage2 = -1074308232, type = 182, div_ = 1, amotion = 1, dmotion = -1074308232, blewcount = 134535323, flag = 135849849, dmg_lv = 2328} __FUNCTION__ = "battle_weapon_attack" #4 0x0816fc2e in unit_attack_timer (tid=22, tick=4267068379, id=2000758, data=0) at unit.c:1773 bl = (struct block_list *) 0xcfb3178 #5 0x0817cb30 in do_timer (tick=4267068405) at timer.c:371 tid = 22 diff = -26 __FUNCTION__ = "do_timer" #6 0x08179e94 in main (argc=1, argv=0xbff75ce4) at core.c:264 next = <value optimized out>