Jump to content
Forgot your email address? ×
×
×
  • Create New...
  • 0

Core crash because of quest/map, probably c++ issue


wezt

Question

Hello,

I'd like to ask for some help with advice. I'm trying to solve my problems almost one week and have not luck with it.

 

The core stop working after adding flame dungeon quest/map to the production server (when map finished few times (4-6)).

But on development server all is fine (probably it's because of the amount of players).

 

On dev I have FreeBSD 9.3-RELEASE i386 on prod - FreeBSD 9.3-RELEASE-p10 amd64

Binary files compiled on dev server from mainline_relased (40k)

 

Here is some parts from logs

 

db error log:

SYSERR: May  6 18:43:01 :: Start: TABLE_POSTFIX not configured use default
SYSERR: May  6 18:43:03 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Column 'name' in field list is ambiguous
query: SELECT empire, pid, name, money, windate FROM monarch a, player b where a.pid=b.id
SYSERR: May  6 18:46:32 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Duplicate entry '819143' for key 'pid'
query: INSERT INTO guild_member VALUES(819143, 103265, 1, 0, 0)
SYSERR: May  6 18:46:32 :: GuildAddMember: Query failed when getting guild member data SELECT pid, grade, is_general, offer, level, job, name FROM guild_member, player WHERE guild_id = 103265 and pid = id and pid = 819143
SYSERR: May  6 18:47:58 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Duplicate entry '819143' for key 'pid'
query: INSERT INTO guild_member VALUES(819143, 103266, 1, 0, 0)
SYSERR: May  6 18:47:58 :: GuildAddMember: Query failed when getting guild member data SELECT pid, grade, is_general, offer, level, job, name FROM guild_member, player WHERE guild_id = 103266 and pid = id and pid = 819143
SYSERR: May  6 19:10:09 :: Process: FDWATCH: peer null in event: ident 22

 

core error log

SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 930125x300539 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929953x300531 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929765x300533 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 928583x300587 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 928594x300728 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 928596x300881 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 928596x301262 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 928596x301410 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 928604x301570 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 928601x301725 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929143x302395 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929715x302383 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 928927x302389 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929263x302389 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929388x302380 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929535x302367 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929871x302385 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929996x302398 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 930117x302374 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 930232x302381 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 930340x302387 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 930453x302385 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 928736x300492 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 930050x301962 mapindex 41
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 928906x300491 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929071x300490 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929693x301439 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 930474x301945 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 929426x301922 mapindex 41
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1000300x271009 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1001939x271444 mapindex 41
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1000432x270650 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1000170x270661 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1001897x271948 mapindex 41
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1000549x272206 mapindex 41
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1000277x271976 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1000221x272383 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1001945x272367 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1001878x270614 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1000386x271484 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1001105x270656 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1001027x271561 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1000729x270671 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1001504x270661 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1001103x272180 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1000816x271443 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1000290x271671 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 1001444x271732 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58504x121838 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58223x121722 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57906x121746 mapindex 21
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57558x122048 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58806x121791 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59321x123072 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57574x123078 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57504x121400 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59342x121294 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59335x122237 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58489x121278 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59339x122626 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57487x122422 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58506x122454 mapindex 21
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59350x121723 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57467x121775 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58047x123067 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58942x123042 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58926x121207 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58009x121226 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57502x122613 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59386x121733 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57488x121184 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57671x121176 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57838x121192 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58246x121218 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58696x121188 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59308x122482 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59390x121958 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59362x121487 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57535x122281 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57496x121603 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57804x123065 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59136x123036 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59342x122755 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59146x121210 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59325x122932 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59098x121805 mapindex 21
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57932x123072 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57693x123086 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57499x122957 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 57557x121872 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59350x122090 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58795x123044 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 58233x123016 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59038x123034 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 59235x123044 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 986665x317211 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 988493x317216 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 24930x219315 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 24436x219321 mapindex 21
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 25384x219288 mapindex 21
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 25216x219943 mapindex 21
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 25874x219341 mapindex 21
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 997624x275328 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 999422x275491 mapindex 41
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 998463x276346 mapindex 41
SYSERR: May  6 19:10:26 :: RegenNPC: Cannot create guild npc
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 999550x275256 mapindex 41
SYSERR: May  6 19:10:26 :: Show: cannot find sectree by 999107x275813 mapindex 41
SYSERR: May  6 19:10:26 :: LoadSkillMotion: Motion: Skill exist but no motion data for index 0 mob 3596 skill 257
SYSERR: May  6 19:10:26 :: LoadSkillMotion: Motion: Skill exist but no motion data for index 1 mob 3596 skill 258

 

core backtrace

#0  0x2878fa73 in thr_kill () from /usr/lib32/libc.so.7
#1  0x28723a56 in pthread_sigmask () from /usr/lib32/libthr.so.3
#2  0x287242ab in raise () from /usr/lib32/libthr.so.3
#3  0x28839e1a in abort () from /usr/lib32/libc.so.7
#4  0x288877d0 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib32/libsupc++.so.1
#5  0x2888c03a in std::set_unexpected () from /usr/lib32/libsupc++.so.1
#6  0x2888c082 in std::terminate () from /usr/lib32/libsupc++.so.1
#7  0x288855e5 in __cxa_pure_virtual () from /usr/lib32/libsupc++.so.1
#8  0x08051e1a in CFSM::Update (this=0x3a0a904c) at FSM.cpp:30
#9  0x0806d268 in CHARACTER::UpdateStateMachine (this=0x3a0a9000, dwPulse=103384) at char.cpp:4127
#10 0x080b0ad4 in std::for_each<__gnu_cxx::__normal_iterator<CHARACTER**, std::vector<CHARACTER*, std::allocator<CHARACTER*> > >, std::binder2nd<std::mem_fun1_t<void, CHARACTER, unsigned int> > > (__first={_M_current = 0x3b2d3500}, __last={_M_current = 0x3b2d43c4},
    __f=
      {<std::unary_function<CHARACTER*,void>> = {<No data fields>}, op = {<std::binary_function<CHARACTER*,unsigned int,void>> = {<No data fields>}, _M_f = {__pfn = 0x806d210 <CHARACTER::UpdateStateMachine(unsigned int)>, __delta = 0}}, value = 103384})
    at stl_function.h:656
#11 0x080b0541 in CHARACTER_MANAGER::Update (this=0xffffc84c, iPulse=103384) at char_manager.cpp:700
#12 0x0825a3e8 in idle () at main.cpp:943
#13 0x0825ba91 in main (argc=1, argv=0xffffde4c) at main.cpp:609

 

I'm not professional c++ developer, but as far i understand crashes happened because some function didn't clean itself and after some time It goes over the memory limit (probably I'm wrong).

 

All errors from logs also appears without new map/quest and core doesn't crash. So i suppose that my problem is in some quest functions or server files (already tried several variants for monster folder and map folder).

 

* I didn't do any changes in those functions which are mentioned in backtrace.

 

If it necessary I'll provide more info.

 

Thanks in advance.

Link to comment

7 answers to this question

Recommended Posts

  • 0

One more time hello!

I still need some advice or tips, about this problem.

Since my first post I've made few changes (compiled binaries with gcc48, tried different gcc flags and even tried different sources), still same problem.

Here is full backtrace from gdb http://pastebin.com/fKTcdbwx

Each game.core backtrace (from different sources and compilers) has almost the same info, this +8 in each vtable ( , etc.) in #14frame.

Here is output from gdb where command:

(gdb) where

#0 0x08535737 in thr_kill ()

#1 0x08527a0b in raise ()

#2 0x085839c5 in abort ()

#3 0x08502b95 in __gnu_cxx::__verbose_terminate_handler () at ../../.././../gcc-4.8-20150423/libstdc++-v3/libsupc++/vterminate.cc:95

#4 0x084c2ec5 in __cxxabiv1::__terminate (handler=0x8502a00 &amp;amp;lt;__gnu_cxx::__verbose_terminate_handler()&amp;amp;gt;) at ../../.././../gcc-4.8-20150423/libstdc++-v3/libsupc++/eh_terminate.cc:38

#5 0x084c2f1f in std::terminate () at ../../.././../gcc-4.8-20150423/libstdc++-v3/libsupc++/eh_terminate.cc:48

#6 0x084c4512 in __cxxabiv1::__cxa_pure_virtual () at ../../.././../gcc-4.8-20150423/libstdc++-v3/libsupc++/pure.cc:50

#7 0x080555fe in CFSM::Update (this=0x3536a84c) at FSM.cpp:30

#8 0x08073f88 in CHARACTER::UpdateStateMachine ([email protected]=0x3536a800, [email protected]=56416) at char.cpp:4063

#9 0x080b57cd in operator() (__x=56416, __p=, this=) at /usr/local/lib/gcc48/include/c++/bits/stl_function.h:623

#10 operator() (__x=, this=) at /usr/local/lib/gcc48/include/c++/backward/binders.h:160

#11 for_each&amp;amp;lt;__gnu_cxx::__normal_iterator &amp;amp;gt;, std::binder2nd &amp;amp;gt; &amp;amp;gt; (__f=..., __last=..., __first=...)

at /usr/local/lib/gcc48/include/c++/bits/stl_algo.h:4417

#12 CHARACTER_MANAGER::Update (this=0xffffc080, [email protected]=56416) at char_manager.cpp:695

#13 0x0824315c in idle () at main.cpp:775

#14 0x0804e5d7 in main (argc=1, argv=0xffffde4c) at main.cpp:461

Because this line "#8 0x08073f88 in CHARACTER::UpdateStateMachine" I suppose that the problem connected to mobs but still cannot find out.

Thanks in advance.

Regards.

Link to comment
  • 0

Thanks for reply and sorry for delay.

1) I didn't change any settings for a1/b1/c1 (using original files or those which were found in web)

2) Right now i have only old logs (the ones which I've saved after same crash few days ago).
auth_syslog

May  6 19:10:09 :: Handshake: lower than zero -28


May  6 19:10:09 :: Handshake: client_time 0 server_time 1627143
May  6 19:10:09 :: SetRemainSecs player4dw 0 type 2
May  6 19:10:09 :: BILLING: PUSH player4dw 543 type 2
May  6 19:10:09 :: BILLING: OFF player4dw key 783270870 ptr 0x291fa9e0
May  6 19:10:09 :: SetRemainSecs rewtqert 0 type 2
May  6 19:10:09 :: BILLING: PUSH rewtqert 30 type 2
May  6 19:10:09 :: BILLING: OFF rewtqert key 1507378031 ptr 0x291f9cc0
May  6 19:10:09 :: SetRemainSecs asdfasdf 0 type 2
May  6 19:10:09 :: BILLING: PUSH asdfasdf 636 type 2
May  6 19:10:09 :: BILLING: OFF asdfasdf key 1788246085 ptr 0x291fa190
May  6 19:10:09 :: SetRemainSecs asy553fg 0 type 2
May  6 19:10:09 :: BILLING: PUSH asy553fg 664 type 2
May  6 19:10:09 :: BILLING: OFF asy553fg key 507890291 ptr 0x291f9ef0
May  6 19:10:09 :: SetRemainSecs a345tgyhb 0 type 2
May  6 19:10:09 :: BILLING: PUSH a345tgyhb 664 type 2
May  6 19:10:09 :: BILLING: OFF a345tgyhb key 1287049170 ptr 0x291f9160
May  6 19:10:09 :: SetRemainSecs asdf 0 type 2
May  6 19:10:09 :: BILLING: PUSH asdf 568 type 2
May  6 19:10:09 :: BILLING: OFF asdf key 387512254 ptr 0x291fa970
May  6 19:10:09 :: SetRemainSecs sdddddddd 0 type 2
May  6 19:10:09 :: BILLING: PUSH sdddddddd 638 type 2
May  6 19:10:09 :: BILLING: OFF sdddddddd key 1242074414 ptr 0x291f9240
May  6 19:10:09 :: SetRemainSecs hhhhhhh 0 type 2
May  6 19:10:09 :: BILLING: PUSH hhhhhhh 7 type 2
May  6 19:10:09 :: BILLING: OFF hhhhhhh key 331358538 ptr 0x291faa50
May  6 19:10:09 :: SetRemainSecs iimosssdesii 0 type 2
May  6 19:10:09 :: BILLING: PUSH iimosssdesii 579 type 2
May  6 19:10:09 :: BILLING: OFF iimosssdesii key 1703653702 ptr 0x291fa4a0
May  6 19:10:09 :: AUTH_PHASE 0x28d6b000
May  6 19:10:09 :: InputAuth::Login : sacccccc(8) desc 0x28d6b000
May  6 19:10:09 :: SetLoginKey 702115956
May  6 19:10:09 :: InputAuth::Login : key 702115956:0x1e96dbb0 login sacccccc
May  6 19:10:09 :: QID_AUTH_LOGIN: START 702115956 0x28d6b000
May  6 19:10:09 ::    NOID
May  6 19:10:09 :: FLUSH_USE_TIME: count 10

auth_syserr

SYSERR: May  6 18:43:01 :: pid_init:


Start of pid: 90203

SYSERR: May  6 18:43:01 :: socket_connect: HOST localhost:15000, could not connect.

db_syslog

May  6 19:10:03 :: eee3453eeeeeeeee 958894 270458 hair 5024


May  6 19:10:03 :: wertwer 63261 166722 hair 0
May  6 19:10:03 :: qwer 958279 268983 hair 0
May  6 19:10:03 :: wqer 977112 304169 hair 0
May  6 19:10:04 :: MarriageUpdate PID:248182 667613 LP:664304784 ST:1
May  6 19:10:04 :: MARRIAGE UPDATE PID:248182 667613 LP:664304784 ST:1
May  6 19:10:04 :: SetPlay on 753232300 qwerqwer
May  6 19:10:04 :: [PLAYER_LOAD] ID werterwewewe pid 809042 gold 56127077
May  6 19:10:04 :: QID_QUEST 307
May  6 19:10:04 :: QUEST_LOAD: count 32 PID 809042
May  6 19:10:04 :: info of pLoginData1 before call ItemAwardfunction 679762240
May  6 19:10:04 :: QID_AFFECT 307
May  6 19:10:04 :: AFFECT_LOAD: count 2 PID 809042
May  6 19:10:06 :: [    16250] return 0/0/0 async 0/0/0
May  6 19:10:08 :: SetPlay off 1653595356 asdf
May  6 19:10:09 :: SetPlay off 783270870 tqew
May  6 19:10:09 :: SetPlay off 1507378031 qrtwerterwt
May  6 19:10:09 :: SetPlay off 1788246085 stuadsfgdsfrtmarshall2
May  6 19:10:09 :: SetPlay off 507890291 dsfggeeee
May  6 19:10:09 :: SetPlay off 1287049170 eeee345435
May  6 19:10:09 :: SetPlay off 387512254 qwerqwer
May  6 19:10:09 :: SetPlay off 1242074414 wqer3232332
May  6 19:10:09 :: SetPlay off 331358538 wqerwqer
May  6 19:10:09 :: SetPlay off 1703653702 wqerwqerwqer
May  6 19:10:09 :: Connection closed. (host: 127.0.0.1)
May  6 19:10:09 :: ItemIDRange: returned. 110000001 ~ 120000000
May  6 19:10:09 :: ItemIDRange: Build: 110000001 ~ 120000000 start:115923420
SYSERR: May  6 19:10:09 :: Process: FDWATCH: peer null in event: ident 22

db_syserr

SYSERR: May  6 18:47:58 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Duplicate entry '819143' for key 'pid'


query: INSERT INTO guild_member VALUES(819143, 103266, 1, 0, 0)
SYSERR: May  6 18:47:58 :: GuildAddMember: Query failed when getting guild member data SELECT pid, grade, is_general, offer, level, job, name FROM guild_member, player WHERE guild_id = 103266 and pid = id and pid = 819143
SYSERR: May  6 19:10:09 :: Process: FDWATCH: peer null in event: ident 22

channel1_core3_syslog

May  6 19:10:01 :: MarriageUpdate 248182 667613 664120743 1


May  6 19:10:02 :: sadfadsaf: USE_SKILL: 107 pkVictim 0x356a9000
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6002)
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6006)
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6006)
May  6 19:10:02 :: VERSION: player2 7486881150 metin2client.bin
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=679457, npc=6003)
May  6 19:10:02 :: AddAffect Cursed Troll Seeress type 210 apply 0 0 flag 6 duration 4
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=792841, npc=2442)
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6004)
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6005)
May  6 19:10:02 :: player4: USE_SKILL: 62 pkVictim 0x0
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 133493, iDam_t -3255
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6006)
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 133030, iDam_t -3244
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6006)
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 136455, iDam_t -6497
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6002)
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 129738, iDam_t 0
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 136330, iDam_t -6491
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6002)
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 136547, iDam_t -6502
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 129712, iDam_t 0
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6004)
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 134518, iDam_t -3280
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6003)
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 133378, iDam_t -3253
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6006)
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 136843, iDam_t -6516
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6005)
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 133564, iDam_t -3257
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6003)
May  6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 133155, iDam_t -3247
May  6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6007)
May  6 19:10:03 :: SHOW: player2 3312000x6000x0
May  6 19:10:03 :: AddAffect player2 type 215 apply 0 0 flag 28 duration 5
May  6 19:10:03 :: ENTERGAME: player2 3312000x6000x0 79.118.80.207 map_index 226
May  6 19:10:03 :: HORSE STAMINA REGEN EVENT CANCEL 0x0
May  6 19:10:03 :: HORSE STAMINA CONSUME EVENT CREATE 0x2ad1f860
May  6 19:10:03 :: SendLandList map 226 count 0 elem_size: 0
May  6 19:10:03 :: AddAffect player2 type 500 apply 0 0 flag 0 duration 7130
May  6 19:10:03 :: PREMIUM: player2 type 0 7130min
May  6 19:10:03 :: AddAffect player2 type 501 apply 0 0 flag 0 duration 7130
May  6 19:10:03 :: PREMIUM: player2 type 1 7130min
May  6 19:10:03 :: AddAffect player2 type 502 apply 0 0 flag 0 duration 7130
May  6 19:10:03 :: PREMIUM: player2 type 2 7130min
May  6 19:10:03 :: AddAffect player2 type 503 apply 0 0 flag 0 duration 7130
May  6 19:10:03 :: PREMIUM: player2 type 3 7130min
May  6 19:10:03 :: AddAffect player2 type 504 apply 0 0 flag 0 duration 7130
May  6 19:10:03 :: PREMIUM: player2 type 4 7130min
May  6 19:10:03 :: AddAffect player2 type 505 apply 0 0 flag 0 duration 7130
May  6 19:10:03 :: PREMIUM: player2 type 5 7130min
May  6 19:10:03 :: AddAffect player2 type 506 apply 0 0 flag 0 duration 7130
May  6 19:10:03 :: PREMIUM: player2 type 6 7130min
May  6 19:10:03 :: VERSION CHECK 2147483647 2147483647 7486881150 7486881150
May  6 19:10:03 :: reallocating buffer to 4096, current 1024
May  6 19:10:03 :: PARTY P2PSetMemberLevel leader 137025 pid 137025 level 170
May  6 19:10:03 :: PONG! 1 74
May  6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=679457, npc=6004)
May  6 19:10:03 :: GIVE_GOLD: player4 116237
May  6 19:10:03 :: AddAffect Ember Flame type 210 apply 0 0 flag 6 duration 4
May  6 19:10:03 :: CopyMe: USE_SKILL: 107 pkVictim 0x35c17000
May  6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6004)
May  6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6002)
May  6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=792841, npc=2443)
May  6 19:10:03 :: QUEST_LOAD: Login pc 137025 by event
May  6 19:10:03 :: QUEST timer name check_start_event_board cycle 500 pc 137025 npc 4294967295 loop? 1
May  6 19:10:03 :: QUEST add timer 0x2db73240 1
May  6 19:10:03 :: HORSE STAMINA CONSUME EVENT CANCEL 0x2ad1f860
May  6 19:10:03 :: HORSE STAMINA REGEN EVENT CREATE 0x2db73420
May  6 19:10:03 :: HorseSummon : player2 lv:170 bSummon:1 fromFar:0
May  6 19:10:03 :: RegisterRaceNumMap Dark Military Horse 20120
May  6 19:10:03 :: AddAffect player2 type 515 apply 19 12 flag 0 duration 1892160000
May  6 19:10:03 :: AddAffect player2 type 515 apply 13 12 flag 0 duration 1892160000
May  6 19:10:03 :: AddAffect player2 type 515 apply 12 12 flag 0 duration 1892160000
May  6 19:10:03 :: AddAffect player2 type 515 apply 15 12 flag 0 duration 1892160000
May  6 19:10:03 :: AddAffect player2 type 515 apply 14 12 flag 0 duration 1892160000
May  6 19:10:03 :: AddAffect player2 type 515 apply 6 2500 flag 0 duration 1892160000
May  6 19:10:03 :: AddAffect player2 type 515 apply 17 12 flag 0 duration 1892160000
May  6 19:10:03 :: AddAffect player2 type 515 apply 43 12 flag 0 duration 1892160000
May  6 19:10:03 :: AddAffect player2 type 515 apply 53 12 flag 0 duration 1892160000
May  6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6001)
May  6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6001)
May  6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6007)
May  6 19:10:03 :: AddAffect Cursed Troll Seeress type 209 apply 0 0 flag 4 duration 31
May  6 19:10:04 :: SAVE: player4 776200x673900
May  6 19:10:04 :: TMarriage::Save() - RequestUpdate.bSave=1
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6008)
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6002)
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6006)
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6006)
May  6 19:10:04 :: Handshake: client_time 1440935 server_time 1621167 name: Andwnis97
May  6 19:10:04 :: player4: USE_SKILL: 62 pkVictim 0x0
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 130113, iDam_t 0
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6004)
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 136531, iDam_t -6501
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6002)
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 130217, iDam_t 0
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 136599, iDam_t -6504
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6002)
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 133390, iDam_t -3253
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6003)
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 129944, iDam_t 0
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6004)
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 133430, iDam_t -3254
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6007)
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 129839, iDam_t 0
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6004)
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 133430, iDam_t -3254
May  6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6003)
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 133490, iDam_t -3255
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 133359, iDam_t -3252
May  6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 136246, iDam_t -6487
May  6 19:10:04 :: MarriageUpdate 248182 667613 664304784 1
May  6 19:10:04 :: P2P: Login asdfqweww
May  6 19:10:04 :: SECTREE DIFFER: testtest 121x100 was 121x101
May  6 19:10:05 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6001)
May  6 19:10:05 :: CopyMe: USE_SKILL: 107 pkVictim 0x35c17000
May  6 19:10:05 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=8057)
May  6 19:10:05 :: Dungeon GetMapIndex 3510002
May  6 19:10:05 :: XXX Dungeon Notice 0x2aca2700 The Metin Purgatory was destroyed.
May  6 19:10:05 :: XXX Dungeon Notice 0x2aca2700 Am-heh with a new vision for the task.
May  6 19:10:05 :: QUEST_DUNGEON_PURGE_AREA
May  6 19:10:05 :: AddAffect  type 210 apply 0 0 flag 6 duration 5
May  6 19:10:05 :: AddAffect  type 210 apply 0 0 flag 6 duration 5
May  6 19:10:05 :: AddAffect  type 210 apply 0 0 flag 6 duration 5
May  6 19:10:05 :: AddAffect  type 210 apply 0 0 flag 6 duration 5
May  6 19:10:05 :: AddAffect  type 210 apply 0 0 flag 6 duration 5
SYSERR: May  6 19:10:14 :: pid_init:
Start of pid: 90507

channel1_core3_syserr

SYSERR: May  6 18:59:08 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122


SYSERR: May  6 18:59:08 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 18:59:31 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 18:59:32 :: Click: CQuestManager::Click(pid=819550, target_npc_name=Taurean) - NOT EXIST NPC RACE VNUM[20014]
SYSERR: May  6 18:59:41 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 18:59:41 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 18:59:52 :: Click: CQuestManager::Click(pid=770589, target_npc_name=Wounded Soldier) - NOT EXIST NPC RACE VNUM[20393]
SYSERR: May  6 19:00:42 :: Click: CQuestManager::Click(pid=679457, target_npc_name=Destiny Lock) - NOT EXIST NPC RACE VNUM[20387]
SYSERR: May  6 19:01:28 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:01:28 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:01:54 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:01:54 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:02:03 :: SyncPosition: Too many SyncPosition Count(17) from Name(player1)
SYSERR: May  6 19:02:06 :: SyncPosition: Too many SyncPosition Count(20) from Name(player1)
SYSERR: May  6 19:02:12 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:02:12 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:02:19 :: SyncPosition: Too many SyncPosition Count(17) from Name(player1)
SYSERR: May  6 19:02:20 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:02:20 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:02:33 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:02:33 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:02:49 :: UpdateSectree: null sectree name: Charron 1439399 1423513
SYSERR: May  6 19:03:32 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:03:32 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:03:36 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:03:36 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:03:49 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:03:49 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:04:21 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:04:21 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:04:27 :: IsUniqueDead: Unknown Key or Dead : door1
SYSERR: May  6 19:04:30 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:04:30 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:04:34 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:04:40 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122
SYSERR: May  6 19:04:45 :: SyncPosition: Too many SyncPosition Count(19) from Name(player1)
SYSERR: May  6 19:05:08 :: SyncPosition: Too many SyncPosition Count(19) from Name(player1)
SYSERR: May  6 19:05:11 :: SyncPosition: Too many SyncPosition Count(17) from Name(player1)
SYSERR: May  6 19:05:52 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:06:03 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:06:14 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:06:21 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:06:30 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:06:37 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:06:37 :: GetUniqueVid: Unknown Key or Dead: stone5_2
SYSERR: May  6 19:06:46 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:06:46 :: GetUniqueVid: Unknown Key or Dead: stone5_2
SYSERR: May  6 19:06:46 :: GetUniqueVid: Unknown Key or Dead: stone5_3
SYSERR: May  6 19:06:50 :: SyncPosition: Too many SyncPosition Count(19) from Name(player1)
SYSERR: May  6 19:06:52 :: SyncPosition: Too many SyncPosition Count(18) from Name(player1)
SYSERR: May  6 19:06:54 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:06:54 :: GetUniqueVid: Unknown Key or Dead: stone5_2
SYSERR: May  6 19:06:54 :: GetUniqueVid: Unknown Key or Dead: stone5_3
SYSERR: May  6 19:07:18 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:07:18 :: GetUniqueVid: Unknown Key or Dead: stone5_2
SYSERR: May  6 19:07:18 :: GetUniqueVid: Unknown Key or Dead: stone5_3
SYSERR: May  6 19:07:18 :: GetUniqueVid: Unknown Key or Dead: stone5_4
SYSERR: May  6 19:07:24 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:07:24 :: GetUniqueVid: Unknown Key or Dead: stone5_2
SYSERR: May  6 19:07:24 :: GetUniqueVid: Unknown Key or Dead: stone5_3
SYSERR: May  6 19:07:24 :: GetUniqueVid: Unknown Key or Dead: stone5_4
SYSERR: May  6 19:07:24 :: GetUniqueVid: Unknown Key or Dead: stone5_5
SYSERR: May  6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_2
SYSERR: May  6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_3
SYSERR: May  6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_4
SYSERR: May  6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_5
SYSERR: May  6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_6
SYSERR: May  6 19:07:43 :: SyncPosition: Too many SyncPosition Count(18) from Name(player1)
SYSERR: May  6 19:07:47 :: SyncPosition: Too many SyncPosition Count(18) from Name(player1)
SYSERR: May  6 19:08:00 :: IsUniqueDead: Unknown Key or Dead : door1
SYSERR: May  6 19:08:00 :: IsUniqueDead: Unknown Key or Dead : door5
SYSERR: May  6 19:08:00 :: IsUniqueDead: Unknown Key or Dead : door1
SYSERR: May  6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame Beard) from Name(player1) VICTIM(794402,651076) SYNC(794446,651012)
SYSERR: May  6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame Beard) from Name(player1) VICTIM(794435,651162) SYNC(794435,651162)
SYSERR: May  6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame General) from Name(player1) VICTIM(794233,651214) SYNC(794254,651190)
SYSERR: May  6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame General) from Name(player1) VICTIM(794204,651101) SYNC(794210,651135)
SYSERR: May  6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame General) from Name(player1) VICTIM(794377,650918) SYNC(794403,650981)
SYSERR: May  6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame General) from Name(player1) VICTIM(794195,651114) SYNC(794216,651144)
SYSERR: May  6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame Golem) from Name(player1) VICTIM(794345,651228) SYNC(794228,651129)
SYSERR: May  6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame King) from Name(player1) VICTIM(794238,651000) SYNC(794223,650986)
SYSERR: May  6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame King) from Name(player1) VICTIM(794321,651216) SYNC(794321,651216)
SYSERR: May  6 19:09:11 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:09:25 :: IsUniqueDead: Unknown Key or Dead : door2
SYSERR: May  6 19:09:25 :: GetUniqueVid: Unknown Key or Dead: stone5_1
SYSERR: May  6 19:09:25 :: GetUniqueVid: Unknown Key or Dead: stone5_2
SYSERR: May  6 19:09:56 :: IsUniqueDead: Unknown Key or Dead : door1
SYSERR: May  6 19:09:56 :: IsUniqueDead: Unknown Key or Dead : door2
SYSERR: May  6 19:10:14 :: pid_init:
Start of pid: 90507

 

And also want to notice that this crashes happens only when I activated flame dungeon quest, flame_dungeon map is on core3 and a1/b1/c1 maps are on core1 (each channel has 3 cores).

 

Here is a quest file

define BLOCK_DOOR 20387
define DUNGEON_MAN 20385
define DUNGEON_MAN_DIR 0
define DUNGEON_MAP_INDEX 351
define ENTER_LIMIT_TIME 5
define ENTRY_MAN 20394
define ENTRY_MAP_INDEX 62
define FINAL_BOSS 6091
define LEVEL2_KEY 30329
define LEVEL2_STONE 20386
define LEVEL4_TARGET 6051
define LEVEL5_REALKEY 30330
define LEVEL5_STONE 20386
define LEVEL5_GEN_LIMIT 100
define LEVEL6_TARGET 8057
define LEVEL_CUT 160
define MOB_REGEN_FILE_PATH = "data/dungeon/flame_dungeon/"
define IN_DOOR 20388
define NPC_REGEN_FILE_PATH = "data/dungeon/flame_dungeon/npc.txt"
define TICKET_GROUP 10033
define LIMITED_PASS_TICKET 71175

quest flame_dungeon begin
	state start begin
		function setting()
			return 
			{
			["bossroom_entry_pos"] = {8109,6867},
			["boss_pos"] = {686,637},
			["doors_pos"] = {
				{320,394},
				{293,359},
				{333,321},
				{378,320},
				{400,355},
				{394,401}
			},
			["idoors_pos"] = {
				{268,447},
				{234,359},
				{300,264},
				{454,217},
				{470,355},
				{467,469}
			},
			["doors_dir"] = {135,90,210,152,90,223},
			["idoors_dir"] = {135,90,210,135,90,239},
			["dungeon_entry_pos"] = {7762, 6739},-- 던전에 처음 들어오는 곳
			["DUNGEON_MAN_bpos"] = {690,722},
			["DUNGEON_MAN_pos"] = {354,362},
			["LEVEL2_STONE_pos"] = {195,352},
			["LEVEL4_TARGET_pos"] = {470,175},
			["LEVEL5_STONE_pos"] = {
				{486, 345},
				{511, 336},
				{525, 349},
				{521, 365},
				{503, 372},
				{486, 365},
				{500, 354}
			},
			["LEVEL6_TARGET_pos"] = {511,480},
			["outside_entry_pos"] = {6142,7068}, --입장시켜주는애 서있는 곳
			["YAK_pos"] = {376, 397} -- 약환 부하
			}
		end

		function is_flamed(idx) -- 적룡성에 있는지 확인 
			return (idx >= DUNGEON_MAP_INDEX * 10000 and idx < (DUNGEON_MAP_INDEX + 1) *10000)
		end

		function make_dungeon() -- 던전 만들기
			local setting = flame_dungeon.setting()
			d.new_jump_party(DUNGEON_MAP_INDEX, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])
			d.regen_file(NPC_REGEN_FILE_PATH)
			d.setf("level",0)
			for i=1,6 do
				d.set_unique("door"..i, d.spawn_mob_ac_dir(BLOCK_DOOR, setting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i]))
				d.set_unique("idoor"..i, d.spawn_mob_ac_dir(IN_DOOR, setting.idoors_pos[i][1], setting.idoors_pos[i][2],setting.idoors_dir[i]))
			end
			d.setf("clear_count",0)
			d.setf("started",0)
			party.setf("dungeon_enter",0) -- 정상적으로 입장했는지? // 비정상 : 0 정상 : 1 // 튕기면 입장제한시간을 기록 안함
			flame_dungeon.clear_timer(d.get_map_index())
		end

		function go_boss() -- 보스룸 가기 
			local setting = flame_dungeon.setting()
			say("Do you want to go the Am-heh and meet  your fate by the throat?")
			local warp = select("Yes","Maybe later")
			if warp == 1 then
				d.setf("level",17)
				d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2])
				d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_fild_boss.txt")
				d.spawn_mob(FINAL_BOSS,setting.boss_pos[1],setting.boss_pos[2])
			end
		end

		function level_clear() -- 레벨 깼을때, 리젠클리어, 지역클리어
			d.setf("level",0)
			d.clear_regen()
			d.purge_area(750000,620000,817400,689400) -- 맵전체 -- d.purge() 사용고려
		end

		function clear_timer(inx) -- 타이머 다지우기
			clear_server_timer ("flame_dungeon_0m_left_timer", inx)
			clear_server_timer ("flame_dungeon_1m_left_timer", inx)
			clear_server_timer ("flame_dungeon_5m_left_timer", inx)
			clear_server_timer ("flame_dungeon_10m_left_timer", inx)
			clear_server_timer ("flame_dungeon_15m_left_timer", inx)
			clear_server_timer ("flame_dungeon_30m_left_timer", inx)
			clear_server_timer ("flame_dungeon_45m_left_timer", inx)
			clear_server_timer ("killedA1", inx)
			clear_server_timer ("killedA2", inx)
		end

		function map_index_compare()
			if flame_dungeon.is_flamed(party.getf("dungeon_index")) then
				return (party.getf("dungeon_index") == pc.getf("flame_dungeon","dungeon_index"))
			end
		end

		function entry_setting()
			local idx = pc.get_map_index()
			local setting = flame_dungeon.setting()			
			if flame_dungeon.is_flamed(idx) then -- 던전 입장, 보스룸 입장 예외
				if idx == DUNGEON_MAP_INDEX or pc.level<LEVEL_CUT then
					warp_to_village()
				elseif not flame_dungeon.map_index_compare() and party.getf("dungeon_enter") == 1 then -- 처음 던전 입장시 티켓 소모
					local ticketGroup = {get_special_item_group (TICKET_GROUP)}
					for i=1, table.getn(ticketGroup),2 do 
						if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
							pc.remove_item(ticketGroup[i], ticketGroup[i+1])
							break
						end
					end
					pc.setf("flame_dungeon","dungeon_index", d.get_map_index())
					pc.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- 던전 나갔을 때 밖으로 튕기게함
				else
					pc.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- 던전 나갔을 때 밖으로 튕기게함
				end
			elseif not d.find(pc.getf("flame_dungeon","dungeon_index")) or not party.is_party() then
				pc.setf("flame_dungeon","dungeon_index",0)
			end
		end

		
		when login begin
		if pc.get_map_index() == DUNGEON_MAP_INDEX then
				warp_to_village()
			end
		end
		

		when logout begin
			local idx = pc.get_map_index()
			if flame_dungeon.is_flamed(idx) and flame_dungeon.map_index_compare() then 
				pc.setf("flame_dungeon","exit_time",get_global_time()) -- 인스턴스 안에서의 마지막 시간을 기록, 근데 시간제한 때문에 or 그냥 튕긴거면 안기록
			end
		end

		when ENTRY_MAN.chat."Test map" with pc.is_gm()  begin
			local setting = flame_dungeon.setting()
			pc.warp(776200, 673900)
		end

		when ENTRY_MAN.chat."Razador Tower" with pc.level>=LEVEL_CUT begin
			local setting = flame_dungeon.setting()
			if party.is_party() then
				local party_dungeon_idx = party.getf("dungeon_index")
				
				if d.find(party_dungeon_idx) then
					local canPass = false
					if flame_dungeon.map_index_compare() and get_global_time() - pc.getf("flame_dungeon","exit_time") < 5 * 60 then
							canPass = true
					elseif party.getf("dungeon_enter") == 0 and get_global_time() - pc.getf("flame_dungeon","exit_time") > ENTER_LIMIT_TIME * 60 then
						local ticketGroup = {get_special_item_group (TICKET_GROUP)}
						for idx=1, table.getn(ticketGroup),2 do 
							if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
								canPass = true
								break
							end
						end
					end

					if canPass then 
						local dungeon_level = d.getf_from_map_index("level", party_dungeon_idx)
						if dungeon_level == 17 then -- 보스
							pc.warp(setting.bossroom_entry_pos[1] * 100, setting.bossroom_entry_pos[2] * 100, party_dungeon_idx)
						else
							pc.warp(setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100, party_dungeon_idx)
						end
					else -- 5분 초과하여 재 입장 불가
						say_title(mob_name(ENTRY_MAN))
						say("To go through the throat of the Am-heh, you should have Passage Ticket.")
					end
				else -- 처음 입장 조건.
					if party.is_leader() then
						say("Would you like to enter the Razador Fortress?")
						local warp = select("Yes", "Maybe later")
						if warp == 1 then
							local pids = {party.get_member_pids()}
							local noTicketMembers = {}
							local notEnoughLevelMembers = {}
							local ticketCheck = true
							local levelCheck = true
							local ticketGroup = {get_special_item_group (TICKET_GROUP)}
							for i, pid in next, pids, nil do
								q.begin_other_pc_block(pid)
								local canPass = false
								for idx=1, table.getn(ticketGroup),2 do 
									if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
										canPass = true
										break
									end
								end
						
								if not canPass then
									table.insert(noTicketMembers, pc.get_name())
									ticketCheck = false
								end

								if pc.level < LEVEL_CUT then
									table.insert(notEnoughLevelMembers, pc.get_name())
									levelCheck = false
								end
								q.end_other_pc_block()
							end

							if not ticketCheck then
								say_title(mob_name(ENTRY_MAN))
								say("Caveat!  To enter the Razador Tower,  the transition of all group members are required  to have tickets. Passes non-members:")
								for i, name in next, noTicketMembers, nil do
									say(color(1,1,0), "    "..name)
								end
								if levelCheck then
									return
								else
									wait()
								end
							end

							if not levelCheck then
								say_title(mob_name(ENTRY_MAN))
								say("Caveat! To enter the Razador Tower, all group members must have reached Level 170.  Required level of non-members:")
								for i, name in next, notEnoughLevelMembers, nil do
									say(color(1,1,0), "    "..name)
								end
								return
							end
							
							if ticketCheck and levelCheck then
								if party.is_map_member_flag_lt("exit_time", get_global_time() - ENTER_LIMIT_TIME * 60 ) then
									flame_dungeon.make_dungeon()
									party.setf("dungeon_index", d.get_map_index())
									party.setf("flame_dungeon_boss_kill_count", 0)
								else
									--say("test : 파티원의 입장 제한시간이 끝나지 않았습니다.")
									local time_left = (ENTER_LIMIT_TIME * 60 - (get_global_time() - pc.getf("flame_dungeon","exit_time"))) / 60
									say("Razador Tower unexpired term of your  yet to be able to login. Come back in " .. round(time_left) .. " minute(s)")
								end
							end
						end						
					else
						say("Only group leaders can be found in an entry permit.")
					end
				end
			else
				say("I appreciate your courage.  However, the Razador Tower can not go alone.  Established a strong group and come back later.")
			end
		end

		when ENTRY_MAN.chat."Reset enter limit time" with pc.is_gm() begin
			pc.setf("flame_dungeon","exit_time",get_global_time() - ENTER_LIMIT_TIME * 60)
			say("Done")
		end

		when DUNGEON_MAN.chat."Test Boss Room" with pc.is_gm() begin
			flame_dungeon.go_boss()
		end

		when DUNGEON_MAN.chat."Test server timer!" with pc.is_gm() begin
			server_timer("test1", 1, d.get_map_index())
			say("Done")
		end
		
		when DUNGEON_MAN.chat."Reset test timer!" with pc.is_gm() begin
			clear_server_timer("test1", d.get_map_index())
			clear_server_timer("test2", d.get_map_index())
			say("Done")
		end

		-- <<<< 던전 진행>>>> --
		when DUNGEON_MAN.chat."Am-heh Awakening" begin -- '0x'는 x번째 레벨 퀘스트 받을 수 있는 상태 , '1x'는 x번째 레벨 퀘스트 진행중
			if npc.lock() then
				local setting = flame_dungeon.setting()
				if d.getf("started") == 0 then
					--say(t('locale.flame_dungeon._230_say'))
					--say(t('locale.flame_dungeon._240_say'))
					say("Am-heh Awakening?")
					say("Razador Castle was closed for an hour to others.")
					wait()
					d.setf("started",1)
					-- 파티원이 튕겨버렸는데 자기만 남아서 exit timer가 리셋되면 안되니깐 다음레벨을 눌렀을때를 시작할때로 봄
					server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index())
					--d.notice(t('locale.flame_dungeon._250_notice'))
					--d.notice(t('locale.flame_dungeon._170_notice'))
					d.notice("Time Left: 60 Minutes")
					d.notice("When finished you will be expelled from the time the castle as a group.")
					local pids = {party.get_member_pids()}
					local ticketGroup = {get_special_item_group (TICKET_GROUP)}
					for i, pid in next, pids, nil do
						q.begin_other_pc_block(pid)
						local canPass = false
						for idx=1, table.getn(ticketGroup),2 do 
							if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
								canPass = true
								pc.remove_item(ticketGroup[idx], ticketGroup[idx+1])
								pc.setf("flame_dungeon","dungeon_index", d.get_map_index())
								break
							end
						end
					
						if not canPass then
							pc.setf("flame_dungeon","dungeon_index", 0)
							warp_to_village()
						end
						q.end_other_pc_block()
					end
					party.setf("dungeon_enter",1)
				end

				if d.getf("level") == 0 then --레벨을 클리어했으면
					if d.getf("clear_count") == 6 then -- 방 여섯개 했으면 보스방
						d.setf("level",7)
					else
						local rand = number(1,6)--랜덤에서 방문체크는 따로 배열없이 방의 문의 열려있는지로 체크함
						local setlev = 0
						d.setf("level",7)
						for i=1,50 do
							setlev = setlev + 1
							if setlev > 6 then
								setlev = 1
							end
							if not d.is_unique_dead("door"..setlev) then
								rand = rand - 1
								if rand == 0 then
									d.setf("level",setlev)
									d.setf("clear_count",d.getf("clear_count")+1)
									break
								end
							end
						end
					end
				end
				if d.getf("level") == 1 then
					say("Mission: Venture into the ring of demons and  emerge as winner.")
					d.notice("Mission: Venture into the ring of demons and  emerge as winner.")
					d.kill_unique("door1")
					d.kill_unique("idoor1")
					d.setf("level",11)
					d.regen_file (MOB_REGEN_FILE_PATH.."fd_a.txt")
					server_timer("killedA1", 12, d.get_map_index())
				elseif d.getf("level") == 11 then
					say_title("Remaining: " .. d.count_monster())
				elseif d.getf("level") == 2 then
						say("Task: Find the golden gear and thus solves  the hidden mechanism in the stele of Isfetaus.")
						d.notice("Task: Find the golden gear and thus solves  the hidden mechanism in the stele of Isfetaus.")
						d.spawn_mob(LEVEL2_STONE, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- 봉인석 소환
						d.kill_unique("door2")
						d.kill_unique("idoor2")
						d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_b.txt")
						d.setf("level",12)
				elseif d.getf("level") == 12 then
					say("Will you be the mechanism in the stele of Isfet  can only be initiated with the golden gear wheel.  Return Back when the task was fulfilled.")
				elseif d.getf("level") == 3 then
					say("Mission: Venture into the ring of demons and  emerge as winner.")
					d.notice("Mission: Venture into the ring of demons and  emerge as winner.")
					d.kill_unique("door3")
					d.kill_unique("idoor3")
					d.setf("level",13)
					d.regen_file (MOB_REGEN_FILE_PATH.."fd_c.txt")
					server_timer("killedA1", 12, d.get_map_index())
				elseif d.getf("level") == 13 then
					say_title("Remaining: "..d.count_monster())
				elseif d.getf("level") == 4 then -- 474 178
					say("Task: Defeat Ignitor, guards the embers.")
					d.notice("Task: Defeat Ignitor, guards the embers.")
					d.setf("level",14)
					d.kill_unique("door4")
					d.kill_unique("idoor4")
					d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_d.txt")
					d.spawn_mob(LEVEL4_TARGET,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- 타겟몬스터 소한
				elseif d.getf("level") == 14 then
					say("Ignitor not yet been defeated.   Fortify yourself or receive eternal damnation.   Return if the task is accomplished.")
				elseif d.getf("level") == 5 then -- 510 355
					say("Mission: Find the Maat stones and place them in the correct order in seven stelae ISFET.")
					say("If you use the Stone of Maat in the wrong stele, a stone will break.")
					d.notice("Mission: Find the Maat stones and place them in the correct order in seven stelae ISFET.")
					d.notice("If you use the Stone of Maat in the wrong stele, a stone will break.")
					d.kill_unique("door5")
					d.kill_unique("idoor5")
					d.setf("level",15)
					d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
					local vis = { 0,0,0,0,0,0,0}
					for i=1,7 do
						vis[i] = 0
					end
					for i = 1, 7 do -- 랜덤하게 돌소환
						local ran = number(1,7)
						local st = 0
						for j = 1, 50 do
							st = st + 1
							if st > 7 then
								st = 1
							end
							if vis[st] == 0 then
								ran = ran - 1
								if ran == 0 then
									vis[st] = 1
									d.set_unique("stone5_"..st, d.spawn_mob(LEVEL5_STONE, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2]))
									break
								end
							end
						end
					end  
				elseif d.getf("level") == 15 then
					say("To err is human! So choose wisely to solve the mystery. Return if the task is accomplished.")
				elseif d.getf("level") == 6 then -- 507 490
					say("Task: Just who is not afraid of the scorching heat, will destroy the Metin purgatory.") 
					d.notice("Task: Just who is not afraid of the scorching heat, will destroy the Metin purgatory.")
					d.setf("level",16)
					d.kill_unique("door6")
					d.kill_unique("idoor6")
					d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_f.txt")
					d.spawn_mob(LEVEL6_TARGET, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- 타겟오브젝트 소환
				elseif d.getf("level") == 16 then
					say("Let's put Metin Purgatory in ashes. Back if the task is accomplished.")
				elseif d.getf("level") == 7 then
					flame_dungeon.go_boss()
				else
					say(" ")
				end
				npc.unlock()
			end
		end
		when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin
			local i = number(1, 100) -- 100분의 1 확률로 열쇠드랍
			if i == 1 then
				game.drop_item (LEVEL2_KEY, 1)
			end
		end
		when LEVEL2_STONE.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == LEVEL2_KEY and d.getf("level") == 12 begin
			local i = number(1, 5) -- 5분의 1 확률로 진짜 열쇠
			if i == 1 then
				npc.purge()
				item.remove()
				d.notice("You've finished the task, ")
				d.notice("Am-heh with a new vision for the task.")
				flame_dungeon.level_clear()
			else
				item.remove()
				say("This piece is false and was destroyed.  Find the original.")
			end
		end

		when LEVEL4_TARGET.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
			d.notice("You've finished the task, ")
			d.notice("Am-heh with a new vision for the task.")
			flame_dungeon.level_clear()
		end

		when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin
			local i = number(1, 30) -- 30분의 1 확률로 열쇠드랍
			if i == 1 then
				game.drop_item (LEVEL5_REALKEY, 1)
			end
		end
		when LEVEL5_STONE.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == LEVEL5_REALKEY and d.getf("level") == 15 begin
			local setting = flame_dungeon.setting()
			if npc.get_vid() == d.get_unique_vid("stone5_1") then -- 첫번째 꺼는 선행되어야 할 일이 필요없으니 찾자마자 제거해줌
				npc.purge()
				item.remove()
				say("That was a wise choice.  Now destroyed the next tele.")
				d.setf("stonekill",2) -- 2번 돌을 죽여라
				if d.count_monster() < LEVEL5_GEN_LIMIT then
					d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_2") then 
				if d.getf("stonekill") == 2 then -- 2번돌을 죽일 차롄데 2번돌에게 열쇠를 먹였을 때
					npc.purge()
					item.remove()
					say("That was a wise choice.  Now destroyed the next tele.")
					d.setf("stonekill",3)
					if d.count_monster() < LEVEL5_GEN_LIMIT then
						d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
					end
				else
					item.remove()
					say("Wrong sequence.  The Stone of Maat was thereby destroyed.")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_3") then
				if d.getf("stonekill") == 3 then
					npc.purge()
					item.remove()
					say("That was a wise choice.  Now destroyed the next tele.")
					d.setf("stonekill",4)
					if d.count_monster() < LEVEL5_GEN_LIMIT then
						d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
					end
				else
					item.remove()
					say("Wrong sequence.  The Stone of Maat was thereby destroyed.")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_4") then
				if d.getf("stonekill") == 4 then
					npc.purge()
					item.remove()
					say("That was a wise choice.  Now destroyed the next tele.")
					d.setf("stonekill",5)
					if d.count_monster() < LEVEL5_GEN_LIMIT then
						d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
					end
				else
					item.remove()
					say("Wrong sequence.  The Stone of Maat was thereby destroyed.")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_5") then
				if d.getf("stonekill") == 5 then
					npc.purge()
					item.remove()
					say("That was a wise choice.  Now destroyed the next tele.")
					d.setf("stonekill",6)
					if d.count_monster() < LEVEL5_GEN_LIMIT then
						d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
					end
				else
					item.remove()
					say("Wrong sequence.  The Stone of Maat was thereby destroyed.")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_6") then
				if d.getf("stonekill") == 6 then
					npc.purge()
					item.remove()
					say("That was a wise choice.  Now destroyed the next tele.")
					d.setf("stonekill",7)
					if d.count_monster() < LEVEL5_GEN_LIMIT then
						d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
					end
				else
					item.remove()
					say("Wrong sequence.  The Stone of Maat was thereby destroyed.")
				end
			else 
				if d.getf("stonekill") == 7 then
					npc.purge()
					item.remove()
					d.notice("You've finished the task, ")
					d.notice("Am-heh with a new vision for the task.")
					flame_dungeon.level_clear()
				else
					item.remove()
					say("Wrong sequence.  The Stone of Maat was thereby destroyed.")
				end
			end
		end

		when LEVEL6_TARGET.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin
			d.notice("You've finished the task, ")
			d.notice("Am-heh with a new vision for the task.")
			flame_dungeon.level_clear()
		end

		when FINAL_BOSS.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin
			notice_all("Razador was destroyed.")
			server_timer("dungeon_end_timer", 60,d.get_map_index())	
			flame_dungeon.level_clear()
			
			-- 파티원 중, 야마천 잡는 퀘스트(104렙, 105렙 퀘스트) 진행중인 사람이 있으면 퀘스트 클리어 되도록.
			if party.is_party() then
				party.setf("flame_dungeon_boss_kill_count", 1)
			end
		end

		--START TIMERS PART

		when flame_dungeon_45m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Remaining time: 45 minute(s) ")
				server_timer('flame_dungeon_30m_left_timer', 15*60, get_server_timer_arg())
			end
		end
		
		when flame_dungeon_30m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Remaining time: 30 minute(s) ")
				server_timer('flame_dungeon_15m_left_timer', 15*60, get_server_timer_arg())
			end
		end
		
		when flame_dungeon_15m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Remaining time: 15 minute(s) ")
				server_timer('flame_dungeon_5m_left_timer', 10*60, get_server_timer_arg())
			end
		end
		
		when flame_dungeon_5m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Remaining time: 5 minute(s) ")
				server_timer('flame_dungeon_1m_left_timer', 4*60, get_server_timer_arg())
			end
		end
		
		when flame_dungeon_1m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Remaining time: 1 minute(s) ")
				server_timer ("flame_dungeon_0m_left_timer", 60, get_server_timer_arg())
			end
		end
		
		when flame_dungeon_0m_left_timer.server_timer begin
			local setting = flame_dungeon.setting()
			if d.select(get_server_timer_arg()) then		
				d.notice("Time expired.")
				server_timer("dungeon_end_timer",10,get_server_timer_arg())	
			end
		end	
		
		when dungeon_end_timer.server_timer begin -- 종료 타이머 (끝나고 나가는거)
			local setting = flame_dungeon.setting()
			if d.select(get_server_timer_arg()) then
				flame_dungeon.clear_timer(d.get_map_index())		
				d.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) 
				d.exit_all()
			end
		end

		when killedA1.server_timer begin -- 타이머 돌리기1 (level1,level3)
			if d.select(get_server_timer_arg()) then
				if d.count_monster() <= 1 then -- 1레벨 몬스터 전멸시
					d.notice("You've defeated all the demons, ")
					d.notice("Am-heh with a new vision for the task.")
					d.setf("level",0)
				else
				server_timer ("killedA2", 6, get_server_timer_arg())
				end
			end
		end


		when killedA2.server_timer begin -- 타이머 돌리기2 (1과 2 번갈아가면서 돌아감)
			if d.select(get_server_timer_arg()) then
				if d.count_monster() <= 1 then -- 1레벨 몬스터 전멸시
					d.notice("You've defeated all the demons, ")
					d.notice("Am-heh with a new vision for the task.")
					d.setf("level",0)
				else 
					server_timer ("killedA1", 6, get_server_timer_arg())
				end
			end
		end
		
		when test1.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("server timer test1")
				d.notice("server timer test1")
				server_timer ("test2", 1, get_server_timer_arg())
			end
		end
		
		when test2.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("server timer test2")
				d.notice("server timer test2")
				server_timer ("test1", 1, get_server_timer_arg())
			end
		end
		--END TIMERS PART

	end
end

 

Thank in advance.

Regards.

 

==== UPDATE 1 ====

Ehh, I didn't noticed this message in logs "AddAffect  type 210 apply 0 0 flag 6 duration 5", crashes happens directly after it.

In source this line looks like this:

sys_log(1, "AddAffect %s type %d apply %d %d flag %u duration %d", GetName(), dwType, bApplyOn, lApplyValue, dwFlag, lDuration);

So message from logs means that the game cannot get name for character/mob (if I'm right) -> character/mob = NULL

 

I've added in CHARACTER::AddAffect this(1):

	if (!GetName())
	{
		sys_err("Character::AddAffect false GetName(), type %d", dwType);
		return true;
	}

Wonder if it will crash again, I'll let you know later.

 

==== UPDATE 2 ====

Well when I've added in AddAffect code 1 (see above), channed crashed without this error "AddAffect  type 210 apply 0 0 flag 6 duration 5". I've bactraced the code and I've stoped on CHARACTER::Attak, - added there this if(2):

bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
{
	if (test_server)
		sys_log(0, "[TEST_SERVER] Attack : %s type %d, MobBattleType %d", GetName(), bType, !GetMobBattleType() ? 0 : GetMobAttackRange());
	//PROF_UNIT puAttack("Attack");
	if (!CanMove())
		return false;

	if(!pkVictim) //added for check if victim exist(2)
	{
		sys_err("CHARACTER::Attack FALSE pkVictim, char_battle.cpp:191");
		return false;
	}

Core get crashed, nothing suspicious in logs :(

Link to comment
  • 0

try to replace this:

 

d.purge_area(750000,620000,817400,689400)

 

 

with another command. for me it looks like there is an kind of overflow in there ...

 

I think it´s because of the huge area you wanna clear. The more players are online and get in flame dungeon, the more mobs are there and the greater the array or dictionary gets where the pointers to the monsters in that area are located.

 

 

For example ( simply an example i cannot look the function from my mobiles correctly):

 

 

If in d.purge_area or an subscending function there is an array with the size of 32767 is defined as the temporary space for the monsters

and each flame dungeon has 2000 mobs at the moment.

 

 

If the dungeon is opened 10x then 2000 * 10 = 20 000  = < 32767 ---> everythng is fine

 

but if it´s opened 20x then 2000 * 20   = 40 000  = > 32767 ---> Memory overflow ---> Core crashes.

Link to comment
  • 0

Hi, thanks for reply.

 

I've tried to crash the core with next lines in quest: 

function level_clear()
    d.setf("level",0)
    d.clear_regen()
    --d.purge_area(750000,620000,817400,689400) -- doesn't crash dev server
    d.kill_all() -- crash server only when amount of spawned mobs goes over 20k
    d.regen_file("locale/germany/map/metin2_map_n_flame_01/regen_full.txt")
    d.regen_file("locale/germany/map/metin2_map_n_flame_01/regen_full.txt")
end
 
when test1.server_timer begin
    if d.select(get_server_timer_arg()) then
        d.notice("server timer test1")
        d.notice("flame_dungeon.level_clear()")
        flame_dungeon.level_clear()
        server_timer ("test2", 1, get_server_timer_arg())
    end
end
 
when test2.server_timer begin
    if d.select(get_server_timer_arg()) then
        d.notice("server timer test2")
        d.notice("flame_dungeon.level_clear()")
        flame_dungeon.level_clear()
        server_timer ("test1", 1, get_server_timer_arg())
    end
end

Also I've moved forward little bit (thanks to @martysama0134 ). And from gdb I've found that somehow destroyed characters (mobs) still exist as objects.

 

Were add several lines in void CHARACTER::UpdateStateMachine(DWORD dwPulse)

void CHARACTER::UpdateStateMachine(DWORD dwPulse)
{
//start added lines
    if (!this)
        return;
 
    if (!this->m_pkMobData && !IsPC())
    {
        sys_err("UpdateStateMachine %s doesn't have m_pkMobData", GetName());
        Destroy();
        return;
    }
//end added lines
    if (dwPulse < m_dwNextStatePulse)
        return;
 
    if (IsDead())
        return;
 
    Update();
    m_dwNextStatePulse = dwPulse + m_dwStateDuration;
    //sys_log(0,"UpdateStateMachine %s", GetName());
}

And after core crashed in CHARACTER::ClearTarget

(gdb) where
#0  0x0808aadb in std::tr1::__detail::_Hashtable_iterator_base<CHARACTER*, false>::_M_incr (this=0xffff9858) at /usr/local/lib/gcc5/include/c++/tr1/hashtable_policy.h:215
#1  0x08088ddf in std::tr1::__detail::_Hashtable_iterator<CHARACTER*, true, false>::operator++ (this=0xffff9858) at /usr/local/lib/gcc5/include/c++/tr1/hashtable_policy.h:300
#2  0x0808007d in CHARACTER::ClearTarget (this=0x30341000) at char.cpp:5037
#3  0x080735e0 in CHARACTER::Destroy (this=0x30341000) at char.cpp:451
#4  0x0807d900 in CHARACTER::UpdateStateMachine (this=0x30341000, dwPulse=128944) at char.cpp:4063
#5  0x080c7bf5 in std::mem_fun1_t<void, CHARACTER, unsigned int>::operator() (this=0xffff996c, __p=0x30341000, __x=128944)
    at /usr/local/lib/gcc5/include/c++/bits/stl_function.h:1020
#6  0x080c6dc4 in std::binder2nd<std::mem_fun1_t<void, CHARACTER, unsigned int> >::operator() (this=0xffff996c, [email protected]: 0x30341000)
    at /usr/local/lib/gcc5/include/c++/backward/binders.h:164
#7  0x080c5a3c in std::for_each<__gnu_cxx::__normal_iterator<CHARACTER**, std::vector<CHARACTER*, std::allocator<CHARACTER*> > >, std::binder2nd<std::mem_fun1_t<void, CHARACTER, unsigned int> > > (__first=..., __last=..., __f=...) at /usr/local/lib/gcc5/include/c++/bits/stl_algo.h:3767
#8  0x080c3ec4 in CHARACTER_MANAGER::Update (this=0xffffd174, iPulse=128944) at char_manager.cpp:695
#9  0x08290f77 in idle () at main.cpp:775
#10 0x0828ff2f in main (argc=1, argv=0xffffd7b0) at main.cpp:461
  • Love 1
Link to comment
  • 0

Hello, I've found solution for my problem. And I'd like to share it with you (probably will be useful for someone) ;)

The problem was in d.purge_area() , somehow when this function triggered in quest-file  and if player used skills at same time, the core allows to use skills on nonexistent (already purged) characters.

So I've changed just one row in questlua_dungeon.cpp in struct FPurgeArea and now all works well.

//M2_DESTROY_CHARACTER(pChar); // was changed to
pChar->Dead();

 

This topic could be closed.

#SOLVED

  • Love 5
Link to comment
  • 0
On 6/16/2015 at 1:16 PM, wezt said:

Hello, I've found solution for my problem. And I'd like to share it with you (probably will be useful for someone) ;)

The problem was in d.purge_area() , somehow when this function triggered in quest-file  and if player used skills at same time, the core allows to use skills on nonexistent (already purged) characters.

So I've changed just one row in questlua_dungeon.cpp in struct FPurgeArea and now all works well.

 

Hidden Content

 

This topic could be closed.

#SOLVED

Not solved. You did the leak. I dont recommend to solve it that way.

Be aware of using that "fix"

 

Edited by Flourine
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Announcements

  • -15% Discount in Metin2 Dev Store (01/10/2021 => 31/12/2021) => Code => 15_PCT_OCT_TO_DEC_2021


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.