MentaLL 12 Posted August 17, 2022 Share Posted August 17, 2022 (edited) Sup, any advice regarding this crash? Yes i know, it say deviltower bla bla... but it's totally random and not related at all. I was in a different dungeon, and i can't reproduce this crash. It happen when i do whatever dungeon i have in my server, but i can finish successful all the dungeons without any iusse for like 30-50 times in a row and the core crash will happen randomly when he want to show up. I also tried to debug with ASAN unsuccessful, can anyone give me some ideas? Core was generated by `./srv1-ch99-core99'. Program terminated with signal SIGSEGV, Segmentation fault. Address not mapped to object. #0 extent_arena_get (extent=0x0) at /usr/src/contrib/jemalloc/include/jemalloc/internal/extent_inlines.h:39 39 /usr/src/contrib/jemalloc/include/jemalloc/internal/extent_inlines.h: No such file or directory. [Current thread is 1 (LWP 100499)] (gdb) (gdb) bt #0 extent_arena_get (extent=0x0) at /usr/src/contrib/jemalloc/include/jemalloc/internal/extent_inlines.h:39 #1 __je_large_dalloc (tsdn=0x28b11010, extent=0x0) at jemalloc_large.c:347 #2 0x0869df97 in __free (ptr=0x39b85f80) at /usr/src/contrib/jemalloc/include/jemalloc/internal/rtree.h:341 #3 0x0859bf65 in luaM_realloc (L=0x39ee2160, block=0x39b85f80, oldsize=540, size=0) at lmem.c:69 #4 0x085a03d5 in freestack (L1=0x38c03a40, L=0x39ee2160) at lstate.c:82 #5 luaE_freethread (L=0x39ee2160, L1=0x38c03a40) at lstate.c:176 #6 0x0859b22c in freeobj (o=<optimized out>, L=0x39ee2160) at lgc.c:358 #7 sweeplist (L=<optimized out>, p=0x39ee2160, limit=0) at lgc.c:385 #8 0x0859bd10 in luaC_collectgarbage (L=0x39ee2160) at lgc.c:493 #9 0x08597999 in lua_pushlstring (len=11, s=0x875f8cb "__codecache", L=0x39ee2160) at lapi.c:407 #10 lua_pushstring (L=0x39ee2160, s=0x875f8cb "__codecache") at lapi.c:418 #11 0x081dffb6 in quest::CQuestManager::ExecuteQuestScript (pc=..., quest_name=..., state=0, code=0x29753000 "if npc . get_race ( ) == DevilTower . GetData ( ) [ \"3floo r_boss\" ] and DevilTower . InDungeon ( ) and d . getf ( \"dungeon_floor\" ) == 3 then local data = DevilTower . GetData ( ) ; \nfor _ , item_data"..., code_size=6307, pChatScripts=0x0, bUseCache=true) at questmanager.cpp:1810 #12 0x081f2cb8 in quest::FuncMatchHandleReceiveAllEvent::operator() ( itPCQuest=<error reading variable: access outside bounds of object reference --Type <RET> for more, q to quit, c to continue without paging-- d via synthetic pointer>, itPCQuest=<error reading variable: access outside bounds of object reference d via synthetic pointer>, itQuestMap=<error reading variable: access outside bounds of object referenc ed via synthetic pointer>, this=<synthetic pointer>) at questnpc.cpp:591 #13 quest::NPC::MatchingQuest<std::map<unsigned int, std::map<int, quest::AState ScriptType, std::less<int>, std::allocator<std::pair<int const, quest::AStateScr iptType> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int con st, std::map<int, quest::AStateScriptType, std::less<int>, std::allocator<std::p air<int const, quest::AStateScriptType> > > > > >, quest::FuncMatchHandleReceive AllEvent, quest::FuncMissHandleReceiveAllEvent> (this=0x29a43314, fMiss=<synthetic pointer>..., fMatch=<synthetic pointer>..., QuestMap=..., pc=...) at /Sorgente/Server/game/src/questnpc.h:134 #14 quest::NPC::HandleReceiveAllEvent (this=0x29a43314, pc=..., EventIndex=1) at questnpc.cpp:626 #15 0x081f404c in quest::NPC::OnKill (this=0x29a43314, pc=...) at questnpc.cpp:322 #16 0x081e7d5a in quest::CQuestManager::Kill (this=0xffffa7f8, pc=285, npc=<optimized out>) at questmanager.cpp:590 #17 0x080a0833 in CHARACTER::Reward (this=0x39f1f3c0, bItemDrop=true) at /Sorgente/Server/game/src/char.h:876 #18 0x080a2b8f in CHARACTER::Dead (this=this@entry=0x39f1f3c0, pkKiller=<optimized out>, pkKiller@entry=0x0, --Type <RET> for more, q to quit, c to continue without paging-- bImmediateDead=bImmediateDead@entry=false) at char_battle.cpp:1647 #19 0x080a309e in CHARACTER::Dead (bImmediateDead=false, pkKiller=0x0, this=0x39f1f3c0) at char_battle.cpp:570 #20 StunEvent (event=..., processing_time=75) at char_battle.cpp:436 #21 0x08126d44 in event_process (pulse=1596662) at event.cpp:140 #22 0x0826c79c in heartbeat (ht=0x28b4d6c0, pulse=1596662) at main.cpp:281 #23 0x0826d7e9 in idle () at main.cpp:1009 #24 0x0805c375 in main (argc=1, argv=0xffffdc00) at main.cpp:640 (gdb) (gdb) (gdb) (gdb) (gdb) (gdb) (gdb) bt full #0 extent_arena_get (extent=0x0) at /usr/src/contrib/jemalloc/include/jemalloc/internal/extent_inlines.h:39 arena_ind = <optimized out> #1 __je_large_dalloc (tsdn=0x28b11010, extent=0x0) at jemalloc_large.c:347 arena = <optimized out> #2 0x0869df97 in __free (ptr=0x39b85f80) at /usr/src/contrib/jemalloc/include/jemalloc/internal/rtree.h:341 tcache = <optimized out> tsd = <optimized out> log_var = <optimized out> log_var = <optimized out> #3 0x0859bf65 in luaM_realloc (L=0x39ee2160, block=0x39b85f80, oldsize=540, size=0) at lmem.c:69 No locals. #4 0x085a03d5 in freestack (L1=0x38c03a40, L=0x39ee2160) at lstate.c:82 No locals. #5 luaE_freethread (L=0x39ee2160, L1=0x38c03a40) at lstate.c:176 No locals. #6 0x0859b22c in freeobj (o=<optimized out>, L=0x39ee2160) at lgc.c:358 No locals. #7 sweeplist (L=<optimized out>, p=0x39ee2160, limit=0) at lgc.c:385 curr = <optimized out> count = <optimized out> --Type <RET> for more, q to quit, c to continue without paging-- #8 0x0859bd10 in luaC_collectgarbage (L=0x39ee2160) at lgc.c:493 deadmem = 72 #9 0x08597999 in lua_pushlstring (len=11, s=0x875f8cb "__codecache", L=0x39ee2160) at lapi.c:407 No locals. #10 lua_pushstring (L=0x39ee2160, s=0x875f8cb "__codecache") at lapi.c:418 No locals. #11 0x081dffb6 in quest::CQuestManager::ExecuteQuestScript (pc=..., quest_name=..., state=0, code=0x29753000 "if npc . get_race ( ) == DevilTower . GetData ( ) [ \"3floo r_boss\" ] and DevilTower . InDungeon ( ) and d . getf ( \"dungeon_floor\" ) == 3 then local data = DevilTower . GetData ( ) ; \nfor _ , item_data"..., code_size=6307, pChatScripts=0x0, bUseCache=true) at questmanager.cpp:1810 qs = {co = 0x39ee2160, ico = 3, args = 0, suspend_state = 0 '\000', iIndex = 0, bStart = false, st = 0, quest_name = { _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<c har>> = {<No data fields>}, <No data fields>}, _M_p = 0xffff7338 ""}, _M_string_length = 0, {_M_local_buf = '\000' <repeats 15 times>, _M_allocated_capacity = 0}}, _title = { _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<c har>> = {<No data fields>}, <No data fields>}, _M_p = 0xffff7350 ""}, _M_string_length = 0, { _M_local_buf = "\000\000\000\000\000\220\262(\000\000\000\000\000\ --Type <RET> for more, q to quit, c to continue without paging-- 220\262(", _M_allocated_capacity = 0}}, _clock_name = { _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<c har>> = {<No data fields>}, <No data fields>}, _M_p = 0xffff7368 ""}, _M_string_length = 0, { _M_local_buf = "\000\000\000\000Ȉ5[\200\355\262(\210t\377\377", _M_allocated_capacity = 0}}, _counter_name = { _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<c har>> = {<No data fields>}, <No data fields>}, _M_p = 0xffff7380 ""}, _M_string_length = 0, { _M_local_buf = "\000\030\000\000\000\000\000\000\330s\377\377\034\ 002\036\b", _M_allocated_capacity = 6144}}, _clock_value = 0, _counter_value = 0, _icon_file = { _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<c har>> = {<No data fields>}, <No data fields>}, _M_p = 0xffff73a0 ""}, _M_string_length = 0, { _M_local_buf = "\000\221\262(\000\060u)\000\000\000\000\264\256\00 1\071", _M_allocated_capacity = 682791168}}, chat_scripts = {<std::_Vector_base<quest::AArgScript*, std::allocator< quest::AArgScript*> >> = { _M_impl = {<std::allocator<quest::AArgScript*>> = {<__gnu_cxx::new _allocator<quest::AArgScript*>> = {<No data fields>}, <No data fields>}, <std::_ Vector_base<quest::AArgScript*, std::allocator<quest::AArgScript*> >::_Vector_im pl_data> = {_M_start = 0x0, _M_finish = 0x0, --Type <RET> for more, q to quit, c to continue without paging-- _M_end_of_storage = 0x0}, <No data fields>}}, <No data fields> }} rqs = <optimized out> #12 0x081f2cb8 in quest::FuncMatchHandleReceiveAllEvent::operator() ( itPCQuest=<error reading variable: access outside bounds of object reference d via synthetic pointer>, itPCQuest=<error reading variable: access outside bounds of object reference d via synthetic pointer>, itQuestMap=<error reading variable: access outside bounds of object referenc ed via synthetic pointer>, this=<synthetic pointer>) at questnpc.cpp:591 QuestScript = @0x297fd914: {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<int const, q uest::AStateScriptType> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std ::pair<int const, quest::AStateScriptType> > >> = {<No data fields>}, <No data f ields>}, <std::_Rb_tree_key_compare<std::less<int> >> = { _M_key_compare = {<std::binary_function<int, int, bool>> = {<No data fields>}, <No data fields>}}, <std::_Rb_tree_header> = {_M_header = { _M_color = std::_S_red, _M_parent = 0x2978c960, _M_left = 0x2978c960, _M_right = 0x2978c960}, _M_node_count = 1}, <No data fields>}}} iPCState = 0 itQuestScript = <optimized out> #13 quest::NPC::MatchingQuest<std::map<unsigned int, std::map<int, quest::AState --Type <RET> for more, q to quit, c to continue without paging-- ScriptType, std::less<int>, std::allocator<std::pair<int const, quest::AStateScr iptType> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int con st, std::map<int, quest::AStateScriptType, std::less<int>, std::allocator<std::p air<int const, quest::AStateScriptType> > > > > >, quest::FuncMatchHandleReceive AllEvent, quest::FuncMissHandleReceiveAllEvent> (this=0x29a43314, fMiss=<synthetic pointer>..., fMatch=<synthetic pointer>..., QuestMap=..., pc=...) at /Sorgente/Server/game/src/questnpc.h:134 itPCQuest = {_M_node = 0x391bd340} itQuestMap = {_M_node = 0x297fd900} itPCQuest = <optimized out> itQuestMap = <optimized out> #14 quest::NPC::HandleReceiveAllEvent (this=0x29a43314, pc=..., EventIndex=1) at questnpc.cpp:626 __FUNCTION__ = "HandleReceiveAllEvent" fMiss = {bHandled = false} fMatch = {bHandled = true} #15 0x081f404c in quest::NPC::OnKill (this=0x29a43314, pc=...) at questnpc.cpp:322 No locals. #16 0x081e7d5a in quest::CQuestManager::Kill (this=0xffffa7f8, pc=285, npc=<optimized out>) at questmanager.cpp:590 ch = <optimized out> pParty = <optimized out> --Type <RET> for more, q to quit, c to continue without paging-- leader = <optimized out> pPC = 0x3901aeb4 __FUNCTION__ = "Kill" #17 0x080a0833 in CHARACTER::Reward (this=0x39f1f3c0, bItemDrop=true) at /Sorgente/Server/game/src/char.h:876 monstersList = {<std::_Vector_base<int, std::allocator<int> >> = { _M_impl = {<std::allocator<int>> = {<__gnu_cxx::new_allocator<int>> = {<No data fields>}, <No data fields>}, <std::_Vector_base<int, std::allocator< int> >::_Vector_impl_data> = {_M_start = 0x39010180, _M_finish = 0x39010248, _M_end_of_storage = 0x39010248}, <No data fields>}}, <No data fi elds>} pkAttacker = 0x397e39c0 pos = {x = 926608, y = 2266089, z = 0} item = <optimized out> s_vec_item = {<std::_Vector_base<CItem*, std::allocator<CItem*> >> = { _M_impl = {<std::allocator<CItem*>> = {<__gnu_cxx::new_allocator<CIt em*>> = {<No data fields>}, <No data fields>}, <std::_Vector_base<CItem*, std::a llocator<CItem*> >::_Vector_impl_data> = {_M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}, <No data fields>}}, <No data fields>} __FUNCTION__ = "Reward" #18 0x080a2b8f in CHARACTER::Dead (this=this@entry=0x39f1f3c0, pkKiller=<optimized out>, pkKiller@entry=0x0, bImmediateDead=bImmediateDead@entry=false) at char_battle.cpp:1647 --Type <RET> for more, q to quit, c to continue without paging-- I also collected a lot of ASAN debug, if everyone want to read them i will be happy to show. I will also pay if someone have a solution for that or an indication for find a solution. Thanks to everyone. Edited August 17, 2022 by MentaLL mindset Link to comment Share on other sites More sharing options...
SamuraiHUN 1548 Posted August 19, 2022 Share Posted August 19, 2022 put here questnpc.cpp/OnKill function + questmanager.cpp/CancelServerTimers Link to comment Share on other sites More sharing options...
MentaLL 12 Posted August 19, 2022 Author Share Posted August 19, 2022 1 hour ago, SamuraiHUN said: put here questnpc.cpp/OnKill function + questmanager.cpp/CancelServerTimers Hi, I Already have this. mindset Link to comment Share on other sites More sharing options...
Premium WeedHex 635 Posted August 19, 2022 Premium Share Posted August 19, 2022 (edited) Who's the dev of your server in italy? https://stackoverflow.com/questions/1624726/how-does-jemalloc-work-what-are-the-benefits It's called karma, because you want to earn money using random sources. Y, random as your crash that I saw in other forums. Edited August 19, 2022 by WeedHex Link to comment Share on other sites More sharing options...
MentaLL 12 Posted August 19, 2022 Author Share Posted August 19, 2022 10 minutes ago, WeedHex said: Who's the dev of your server in italy? https://stackoverflow.com/questions/1624726/how-does-jemalloc-work-what-are-the-benefits It's called karma, because you want to earn money using random sources. Y, random as your crash that I saw in other forums. First of all, thank you for your answer. The source on which I have been working, for years I would add, is from martysama purchased legit from him. I don't understand the arrogance of you saying i want to earn money using "random sources" without even know me, but this has nothing to do with that. I asked to take a look in the last weeks to "honorable" community member, and nobody managed to find a solution at all. Can i DM you? i want to clarify some points. mindset Link to comment Share on other sites More sharing options...
Premium Intel 757 Posted August 19, 2022 Premium Share Posted August 19, 2022 (edited) 1 hour ago, WeedHex said: Who's the dev of your server in italy? https://stackoverflow.com/questions/1624726/how-does-jemalloc-work-what-are-the-benefits It's called karma, because you want to earn money using random sources. Y, random as your crash that I saw in other forums. Fair to say the he might not have been the best server owner in Italy but, ffs, jemalloc is called by the lua lib, not the sources. I can guarantee that dungeons have core issues with the kill functions. We had to log EVERYTHING on UE because some ::KillDungeon or ::KillUnique would make the core crash sometimes: Edited August 26, 2022 by Metin2 Dev Core X - External 2 Internal 1 1 Link to comment Share on other sites More sharing options...
Premium WeedHex 635 Posted August 19, 2022 Premium Share Posted August 19, 2022 We talked in PM. I'm sorry for my aggressive message, but the guy has the same problem from long time, I got crazy Link to comment Share on other sites More sharing options...
Developer Ikarus_ 2424 Posted August 19, 2022 Developer Share Posted August 19, 2022 (edited) 1 hour ago, WeedHex said: Who's the dev of your server in italy? https://stackoverflow.com/questions/1624726/how-does-jemalloc-work-what-are-the-benefits It's called karma, because you want to earn money using random sources. Y, random as your crash that I saw in other forums. jemalloc was probably called internally by standard apis. looking on the steps listed by the backtrace: //internal call of je_large_dalloc #1 __je_large_dalloc (tsdn=0x28b11010, extent=0x0) at jemalloc_large.c:347 //call to free, standard defined built-in #2 0x0869df97 in __free (ptr=0x39b85f80) at /usr/src/contrib/jemalloc/include/jemalloc/internal/rtree.h:341 //last call inside lua library #3 0x0859bf65 in luaM_realloc (L=0x39ee2160, block=0x39b85f80, oldsize=540, Edited August 19, 2022 by Ikarus_ 3 My youtube channel on which you can see my works here Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now