Open philippelo opened 17 hours ago
2024-10-10 14:08:25 - stack smashing detected : terminated
2024-10-10 14:08:25 -
2024-10-10 14:08:25 - Thread 2 "canary" received signal SIGABRT, Aborted.
2024-10-10 14:08:25 - [Switching to Thread 0x7ffff76006c0 (LWP 215624)]
2024-10-10 14:08:25 - pthread_kill_implementation (no_tid=0, signo=6, threadid=
2024-10-10 14:08:30 - Thread 9 (Thread 0x7ffff30006c0 (LWP 215631) "canary"):
2024-10-10 14:08:30 - #0 0x00007ffff7898d61 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5555565284bc) at ./nptl/futex-internal.c:57
2024-10-10 14:08:30 - sc_cancel_oldtype = 0
2024-10-10 14:08:30 - sc_ret =
2024-10-10 14:08:30 - Thread 8 (Thread 0x7ffff3a006c0 (LWP 215630) "canary"):
2024-10-10 14:08:30 - #0 0x00007ffff7898d61 in
2024-10-10 14:08:30 - Thread 7 (Thread 0x7ffff44006c0 (LWP 215629) "canary"):
2024-10-10 14:08:30 - #0 0x00007ffff7898d61 in
2024-10-10 14:08:30 - Thread 6 (Thread 0x7ffff4e006c0 (LWP 215628) "canary"):
2024-10-10 14:08:30 - #0 0x00007ffff7898d61 in
2024-10-10 14:08:30 - Thread 5 (Thread 0x7ffff58006c0 (LWP 215627) "canary"):
2024-10-10 14:08:30 - #0 0x00007ffff7898d61 in
2024-10-10 14:08:30 - Thread 4 (Thread 0x7ffff62006c0 (LWP 215626) "canary"):
2024-10-10 14:08:30 - #0 0x00007ffff7898d61 in
2024-10-10 14:08:30 - Thread 3 (Thread 0x7ffff6c006c0 (LWP 215625) "canary"):
2024-10-10 14:08:30 - #0 0x00007ffff7898d61 in
2024-10-10 14:08:37 - Thread 2 (Thread 0x7ffff76006c0 (LWP 215624) "canary"):
2024-10-10 14:08:37 - #0
2024-10-10 14:08:39 - Thread 1 (Thread 0x7ffff7e99800 (LWP 215621) "canary"):
2024-10-10 14:08:39 - #0 0x00007ffff792a042 in epoll_wait (epfd=4, events=0x7fffffffd5f0, maxevents=128, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
2024-10-10 14:08:39 - sc_ret = -4
2024-10-10 14:08:39 - sc_cancel_oldtype = 0
2024-10-10 14:08:39 - sc_ret =
2024-10-10 14:08:39 - Inferior 1 [process 215621] will be killed.
2024-10-10 14:08:39 -
2024-10-10 14:08:39 - Quit anyway? (y or n) [answered Y; input not from terminal]
Por algum motivo foi removido uma verificação de limite de peso. Em alguns casos isto pode causar crashs, eu consegui travar o meu com uma bp de 1kk de oz hahaha.
CONTAINER_WEIGHT_CHECK = true
CONTAINER_WEIGHT_MAX = 1000000 -- 10000.00 oz
-- No move container very heavy
if CONTAINER_WEIGHT_CHECK and ItemType(item:getId()):isContainer() and item:getWeight() > CONTAINER_WEIGHT_MAX then
self:sendCancelMessage("Your cannot move this item too heavy.")
return false
end
Priority
High
Area
What happened?
O crash mencionado parece estar relacionado a uma detecção de corrupção de pilha, evidenciada pelo erro "stack smashing detected". Isso normalmente indica que alguma parte da memória foi sobrescrita indevidamente, possivelmente por uma variável que extrapolou seu espaço de alocação ou por algum erro de ponteiro.
No seu log, observa-se que o erro ocorreu enquanto um jogador movimentava itens no chão e, possivelmente, stackando-os. A pilha de chamadas ("stack trace") revela que o problema pode ter ocorrido durante o manuseio de pacotes de rede, mais especificamente no arquivo protocolgame.cpp no método parsePacketFromDispatcher. É possível que o movimento do item tenha levado a algum tipo de overflow ou corrupção de memória devido ao gerenciamento inadequado de dados.
Sugestões para mitigar o problema:
Valide o Código Envolvido no Movimento de Itens: Verifique o código relacionado à manipulação de itens no chão, especialmente onde há operações de stack ou combinação de itens. Cheque Limites de Buffers: Certifique-se de que qualquer buffer usado durante a manipulação de pacotes tem o tamanho adequado e está sendo verificado corretamente para evitar overflow. Debug Profundo: Utilize ferramentas como Valgrind para verificar a memória e identificar onde pode estar ocorrendo a sobrescrita de memória. Logs Adicionais: Adicione mais logs em pontos estratégicos, como na função parsePacketFromDispatcher, para rastrear as operações feitas antes do crash. Se o problema persistir, seria importante revisar se há algum bug conhecido com movimentação de itens stackáveis, especialmente em casos de manipulação incorreta de memória.
What OS are you seeing the problem on?
Linux
Code of Conduct