Igniz - Jul 8, 2013 22:42
In console:
[code=auto:0]
[Error]: Memory manager: not-allocated-data is changed.
[Error]: Memory manager: freed-data is changed. (freed in db.c line 1058)
[Error]: Memory manager: freed-data is changed. (freed in (null) line 0)
[Error]: Memory manager: freed-data is changed. (freed in script.c line 592)
[Error]: Memory manager: args of aFree 0x0xb27bd804 is invalid pointer pc.c line 8460
[Error]: Server received crash signal! Attempting to save all online characters!
[/code]
Core dump(GDB)[code=:0]
Core was generated by `./map-server'.
Program terminated with signal 11, Segmentation fault.
#0 _mfree (ptr=0xae749a84, file=0x824052f "db.c", line=1058,
func=0x8259f80 "db_release_data") at malloc.c:392
392 *(long*)((char*)head_large + sizeof(struct unit_ head_large) - sizeof(long) + head_large->size)
(gdb) bt full
#0 _mfree (ptr=0xae749a84, file=0x824052f "db.c", line=1058,
func=0x8259f80 "db_release_data") at malloc.c:392
head_large = 0xae749a6c
head = 0xae749a78
#1 0x0821f702 in db_obj_remove (self=0x9b6093c, key=..., out_data=0x0)
at db.c:1890
node = 0xa6abae4
hash = <value optimized out>
c = <value optimized out>
retval = <value optimized out>
#2 0x0815a2c6 in skill_blockpc_end (tid=405, tick=1027739265, id=2008915,
data=1064) at skill.c:17266
i = <value optimized out>
cursor = <value optimized out>
sd = 0xaeff280
cd = <value optimized out>
#3 0x0821d247 in do_timer (tick=1027739279) at timer.c:353
tid = 405
diff = -14
__FUNCTION__ = "do_timer"
#4 0x0821a0e8 in main (argc=1, argv=0xbfe8c584) at core.c:350
next = <value optimized out>
[/code]
Thanks as always ~
Ind - Jul 9, 2013 0:57
I think I can see how you'd get the core dump (I'm not sure as to whether the memory manager errors are related, we'll find out when the fix is commit), /me starts working on it
Ind - Jul 9, 2013 1:42
I believe I've gone over and fixed any possible issues over the skill cool down saving (the problem you had on skill_blockpc_end), please let me know if it also stops the memory manager errors: [url="https://github.com/HerculesWS/Hercules/commit/629fbd735a2a09d865dda51f0d128fc90039ea5a"]https://github.com/HerculesWS/Hercules/commit/629fbd735a2a09d865dda51f0d128fc90039ea5a[/url]
Igniz - Jul 14, 2013 22:19
Well, after one week of tests, this is already fixed.
The "crasher" was body relocation, his cooldown. Every user that uses body relocation more than 80' times in a row was crashing the whole server (i think the cooldown's are LUA related). Now just drop a warning saying that X user exceed the number of XX cooldowns.
Thanks for all :)
Ind - Jul 21, 2013 19:02
Thanks for updating us