Jump to content

Random Crash Core


Recommended Posts

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 by MentaLL

mindset

Link to comment
Share on other sites

  • Premium

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 by WeedHex
Link to comment
Share on other sites

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

  • Premium
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:

spacer.png

 

Edited by Metin2 Dev
Core X - External 2 Internal
  • Metin2 Dev 1
  • Good 1
Link to comment
Share on other sites

  • Developer
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 by Ikarus_
  • Good 3

My youtube channel  on which you can see my works here

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.