opentibiabr / canary

Canary Server 13.x for OpenTibia community.
https://docs.opentibiabr.com/
GNU General Public License v2.0
369 stars 604 forks source link

CRASH SERVER UBUNTU 20 #514

Closed tutbarao closed 2 years ago

tutbarao commented 2 years ago

Priority

Critical

Area

What happened?

Meu otserv ficou 3 meses online wm windows sem nenhum crash. Esta semana coloquei ele em ubuntu 20 e estou recebendo crash na source com o erro abaixo, cerca de 2 vezes ao dia.

Thread 2 "canary" received signal SIGSEGV, Segmentation fault. 2022-09-13 14:04:26 - [Switching to Thread 0x7ffff79ac700 (LWP 115332)] 2022-09-13 14:04:26 - 0x00005555556dbf76 in std::__shared_ptr<ProtocolGame, (__gnu_cxx::_Lock_policy)2>::operator bool() const () 2022-09-13 14:04:26 - 2022-09-13 14:04:26 - Thread 4 (Thread 0x7ffff6996700 (LWP 115334) "canary"): 2022-09-13 14:04:26 - #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x555556631548 <DatabaseTasks::getInstance()::instance+136>) at ../sysdeps/nptl/futex-internal.h:183 2022-09-13 14:04:26 - __ret = -512 2022-09-13 14:04:26 - oldtype = 0 2022-09-13 14:04:26 - err = <optimized out> 2022-09-13 14:04:26 - oldtype = <optimized out> 2022-09-13 14:04:26 - err = <optimized out> 2022-09-13 14:04:26 - __ret = <optimized out> 2022-09-13 14:04:26 - resultvar = <optimized out> 2022-09-13 14:04:26 - __arg4 = <optimized out> 2022-09-13 14:04:26 - __arg3 = <optimized out> 2022-09-13 14:04:26 - __arg2 = <optimized out> 2022-09-13 14:04:26 - __arg1 = <optimized out> 2022-09-13 14:04:26 - _a4 = <optimized out> 2022-09-13 14:04:26 - _a3 = <optimized out> 2022-09-13 14:04:26 - _a2 = <optimized out> 2022-09-13 14:04:26 - _a1 = <optimized out> 2022-09-13 14:04:26 - opentibiabr/otservbr-global#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5555566314f8 <DatabaseTasks::getInstance()::instance+56>, cond=0x555556631520 <DatabaseTasks::getInstance()::instance+96>) at pthread_cond_wait.c:508 2022-09-13 14:04:26 - spin = 0 2022-09-13 14:04:26 - buffer = {__routine = 0x7ffff7fad050 <__condvar_cleanup_waiting>, __arg = 0x7ffff6985cd0, __canceltype = -157786736, __prev = 0x0} 2022-09-13 14:04:26 - cbuffer = {wseq = 12, cond = 0x555556631520 <DatabaseTasks::getInstance()::instance+96>, mutex = 0x5555566314f8 <DatabaseTasks::getInstance()::instance+56>, private = 0} 2022-09-13 14:04:26 - err = <optimized out> 2022-09-13 14:04:26 - g = 0 2022-09-13 14:04:26 - flags = <optimized out> 2022-09-13 14:04:26 - g1_start = <optimized out> 2022-09-13 14:04:26 - maxspin = 0 2022-09-13 14:04:26 - signals = <optimized out> 2022-09-13 14:04:26 - result = 0 2022-09-13 14:04:26 - wseq = 12 2022-09-13 14:04:26 - seq = 6 2022-09-13 14:04:26 - private = <optimized out> 2022-09-13 14:04:26 - maxspin = <optimized out> 2022-09-13 14:04:26 - err = <optimized out> 2022-09-13 14:04:26 - result = <optimized out> 2022-09-13 14:04:26 - wseq = <optimized out> 2022-09-13 14:04:26 - g = <optimized out> 2022-09-13 14:04:26 - seq = <optimized out> 2022-09-13 14:04:26 - flags = <optimized out> 2022-09-13 14:04:26 - private = <optimized out> 2022-09-13 14:04:26 - signals = <optimized out> 2022-09-13 14:04:26 - done = <optimized out> 2022-09-13 14:04:26 - g1_start = <optimized out> 2022-09-13 14:04:26 - spin = <optimized out> 2022-09-13 14:04:26 - buffer = {__routine = <optimized out>, __arg = <optimized out>, __canceltype = <optimized out>, __prev = <optimized out>} 2022-09-13 14:04:26 - cbuffer = {wseq = <optimized out>, cond = <optimized out>, mutex = <optimized out>, private = <optimized out>} 2022-09-13 14:04:26 - s = <optimized out> 2022-09-13 14:04:26 - opentibiabr/otservbr-global#2 __pthread_cond_wait (cond=0x555556631520 <DatabaseTasks::getInstance()::instance+96>, mutex=0x5555566314f8 <DatabaseTasks::getInstance()::instance+56>) at pthread_cond_wait.c:647 2022-09-13 14:04:26 - No locals. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#3 0x00007ffff7d032d0 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#4 0x00005555557d6e6a in DatabaseTasks::threadMain() () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#5 0x00005555557d9513 in void std::__invoke_impl<void, void (DatabaseTasks::*)(), DatabaseTasks*>(std::__invoke_memfun_deref, void (DatabaseTasks::*&&)(), DatabaseTasks*&&) () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#6 0x00005555557d9456 in std::__invoke_result<void (DatabaseTasks::*)(), DatabaseTasks*>::type std::__invoke<void (DatabaseTasks::*)(), DatabaseTasks*>(void (DatabaseTasks::*&&)(), DatabaseTasks*&&) () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#7 0x00005555557d93c7 in void std::thread::_Invoker<std::tuple<void (DatabaseTasks::*)(), DatabaseTasks*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#8 0x00005555557d9382 in std::thread::_Invoker<std::tuple<void (DatabaseTasks::*)(), DatabaseTasks*> >::operator()() () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#9 0x00005555557d9368 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (DatabaseTasks::*)(), DatabaseTasks*> > >::_M_run() () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#10 0x00007ffff7d096b4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#11 0x00007ffff7fa6609 in start_thread (arg=<optimized out>) at pthread_create.c:477 2022-09-13 14:04:26 - ret = <optimized out> 2022-09-13 14:04:26 - pd = <optimized out> 2022-09-13 14:04:26 - unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737330636544, -9024913566420098856, 140737347432926, 140737347432927, 140737347432928, 140737330569088, 9024929832507351256, 9024931188880384216}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} 2022-09-13 14:04:26 - not_first_call = 0 2022-09-13 14:04:26 - opentibiabr/otservbr-global#12 0x00007ffff7b41133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 2022-09-13 14:04:26 - No locals. 2022-09-13 14:04:26 - 2022-09-13 14:04:26 - Thread 3 (Thread 0x7ffff71ab700 (LWP 115333) "canary"): 2022-09-13 14:04:26 - #0 futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7ffff719ad00, clockid=<optimized out>, expected=0, futex_word=0x5555566433e8 <Scheduler::getInstance()::instance+104>) at ../sysdeps/nptl/futex-internal.h:320 2022-09-13 14:04:26 - __ret = -516 2022-09-13 14:04:26 - clockbit = <optimized out> 2022-09-13 14:04:26 - op = <optimized out> 2022-09-13 14:04:26 - __ret = <optimized out> 2022-09-13 14:04:26 - oldtype = 0 2022-09-13 14:04:26 - err = <optimized out> 2022-09-13 14:04:26 - oldtype = <optimized out> 2022-09-13 14:04:26 - err = <optimized out> 2022-09-13 14:04:26 - __ret = <optimized out> 2022-09-13 14:04:26 - clockbit = <optimized out> 2022-09-13 14:04:26 - op = <optimized out> 2022-09-13 14:04:26 - __ret = <optimized out> 2022-09-13 14:04:26 - resultvar = <optimized out> 2022-09-13 14:04:26 - __arg6 = <optimized out> 2022-09-13 14:04:26 - __arg5 = <optimized out> 2022-09-13 14:04:26 - __arg4 = <optimized out> 2022-09-13 14:04:26 - __arg3 = <optimized out> 2022-09-13 14:04:26 - __arg2 = <optimized out> 2022-09-13 14:04:26 - __arg1 = <optimized out> 2022-09-13 14:04:26 - _a6 = <optimized out> 2022-09-13 14:04:26 - _a5 = <optimized out> 2022-09-13 14:04:26 - _a4 = <optimized out> 2022-09-13 14:04:26 - _a3 = <optimized out> 2022-09-13 14:04:26 - _a2 = <optimized out> 2022-09-13 14:04:26 - _a1 = <optimized out> 2022-09-13 14:04:26 - opentibiabr/otservbr-global#1 __pthread_cond_wait_common (abstime=0x7ffff719ad00, clockid=<optimized out>, mutex=0x555556643398 <Scheduler::getInstance()::instance+24>, cond=0x5555566433c0 <Scheduler::getInstance()::instance+64>) at pthread_cond_wait.c:520 2022-09-13 14:04:26 - spin = 0 2022-09-13 14:04:26 - buffer = {__routine = 0x7ffff7fad050 <__condvar_cleanup_waiting>, __arg = 0x7ffff719abf0, __canceltype = -149312496, __prev = 0x0} 2022-09-13 14:04:26 - cbuffer = {wseq = 7537072, cond = 0x5555566433c0 <Scheduler::getInstance()::instance+64>, mutex = 0x555556643398 <Scheduler::getInstance()::instance+24>, private = 0} 2022-09-13 14:04:26 - err = <optimized out> 2022-09-13 14:04:26 - g = 0 2022-09-13 14:04:26 - flags = <optimized out> 2022-09-13 14:04:26 - g1_start = <optimized out> 2022-09-13 14:04:26 - maxspin = 0 2022-09-13 14:04:26 - signals = <optimized out> 2022-09-13 14:04:26 - result = 0 2022-09-13 14:04:26 - wseq = 7537072 2022-09-13 14:04:26 - seq = 3768536 2022-09-13 14:04:26 - private = <optimized out> 2022-09-13 14:04:26 - maxspin = <optimized out> 2022-09-13 14:04:26 - err = <optimized out> 2022-09-13 14:04:26 - result = <optimized out> 2022-09-13 14:04:26 - wseq = <optimized out> 2022-09-13 14:04:26 - g = <optimized out> 2022-09-13 14:04:26 - seq = <optimized out> 2022-09-13 14:04:26 - flags = <optimized out> 2022-09-13 14:04:26 - private = <optimized out> 2022-09-13 14:04:26 - signals = <optimized out> 2022-09-13 14:04:26 - done = <optimized out> 2022-09-13 14:04:26 - g1_start = <optimized out> 2022-09-13 14:04:26 - spin = <optimized out> 2022-09-13 14:04:26 - buffer = {__routine = <optimized out>, __arg = <optimized out>, __canceltype = <optimized out>, __prev = <optimized out>} 2022-09-13 14:04:26 - cbuffer = {wseq = <optimized out>, cond = <optimized out>, mutex = <optimized out>, private = <optimized out>} 2022-09-13 14:04:26 - s = <optimized out> 2022-09-13 14:04:26 - opentibiabr/otservbr-global#2 __pthread_cond_timedwait (cond=0x5555566433c0 <Scheduler::getInstance()::instance+64>, mutex=0x555556643398 <Scheduler::getInstance()::instance+24>, abstime=0x7ffff719ad00) at pthread_cond_wait.c:665 2022-09-13 14:04:26 - flags = <optimized out> 2022-09-13 14:04:26 - clockid = <optimized out> 2022-09-13 14:04:26 - opentibiabr/otservbr-global#3 0x0000555555847fdc in __gthread_cond_timedwait(pthread_cond_t*, pthread_mutex_t*, timespec const*) () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#4 0x0000555555848026 in std::__condvar::wait_until(std::mutex&, timespec&) () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#5 0x0000555555848e4c in std::cv_status std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#6 0x000055555584897d in std::cv_status std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#7 0x000055555584826a in Scheduler::threadMain() () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#8 0x0000555555a7a6ab in void std::__invoke_impl<void, void (Scheduler::*)(), Scheduler*>(std::__invoke_memfun_deref, void (Scheduler::*&&)(), Scheduler*&&) () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#9 0x0000555555a7a4fe in std::__invoke_result<void (Scheduler::*)(), Scheduler*>::type std::__invoke<void (Scheduler::*)(), Scheduler*>(void (Scheduler::*&&)(), Scheduler*&&) () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#10 0x0000555555a7a227 in void std::thread::_Invoker<std::tuple<void (Scheduler::*)(), Scheduler*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#11 0x0000555555a79f40 in std::thread::_Invoker<std::tuple<void (Scheduler::*)(), Scheduler*> >::operator()() () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#12 0x0000555555a791c2 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (Scheduler::*)(), Scheduler*> > >::_M_run() () 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#13 0x00007ffff7d096b4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6 2022-09-13 14:04:26 - No symbol table info available. 2022-09-13 14:04:26 - opentibiabr/otservbr-global#14 0x00007ffff7fa6609 in start_thread (arg=<optimized out>) at pthread_create.c:477 2022-09-13 14:04:26 - ret = <optimized out> 2022-09-13 14:04:26 - pd = <optimized out> 2022-09-13 14:04:26 - unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737339111168, -9024913566420098856, 140737488346350, 140737488346351, 140737488346352, 140737339043712, 9024930933629591768, 9024931188880384216}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} 2022-09-13 14:04:26 - not_first_call = 0 2022-09-13 14:04:26 - opentibiabr/otservbr-global#15 0x00007ffff7b41133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 2022-09-13 14:04:26 - No locals.t

What OS are you seeing the problem on?

Ubuntu 20.04

Code of Conduct

dudantas commented 2 years ago

Não tem como te ajudar sem mais informações. Tente investigar mais... Além disso, o log não dá nenhuma pista do que pode ser. Provavelmente é alguma mudança no ubuntu ou algo que você modificou e tá crashando.

PS: Você abriu no repo errado, é no canary

tutbarao commented 2 years ago

Quais informações precisa? O problema é que só da isso no ubuntu. Ja vi um commint no passado de alguem tendo esse erro. E voce respondeu que estava resolvido.

dudantas commented 2 years ago

Quais informações precisa? O problema é que só da isso no ubuntu. Ja vi um commint no passado de alguem tendo esse erro. E voce respondeu que estava resolvido.

Como executar o crash ajudaria bastante... Como você falou, já foi resolvido. Obviamente não deve ser o mesmo problema. Só acontecia no ubuntu 21. Além disso, o log é completamente diferente.

tutbarao commented 2 years ago

Entao. ja aconteceu uma vez assim que loguei o primeiro char no server. As outras vezes foram aleatorias.

dudantas commented 2 years ago

Entao. ja aconteceu uma vez assim que loguei o primeiro char no server. As outras vezes foram aleatorias.

Faça o seguinte teste; Altere o tempo do imbuement do item no imbuements.xml para 60 (1 minuto) Faça imbuement do item, equipe, espere o tempo acabar e veja se o crash acontece.

tutbarao commented 2 years ago

Encontrei o bug. Era no protocolgame.cpp na linha de "you already logged in". Eu tinha removido antes pq ta bugado.

beats-dh commented 2 years ago

For what I intendi was your mistake, so the crash?

I'm closing, but it can be reopened.