-
-
Notifications
You must be signed in to change notification settings - Fork 669
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Crash] getParent() probably on collect reward #994
Comments
@ElimarCosta It looked like I was crashing on the line you added in this commit #885 |
Do you have any clue on what can cause this? Any special event that occurred that day like boss invasion or something else that you remember? Please, if possible try to add some logs around those methods call like the position of the reward chest, player's name, bosses killed by that player and any other information that you believe it is needed. |
This happens when a lot of players kill one boss at once, and when the player goes to collect the reward for the chest reward, it's a crash. But not every player, I don't know what it depends on |
Could you test this change? pr #997 |
Forget it, that code doesn't make sense but it won't change anything on your case. |
Please, test this change on pr #997 and keep me informed! |
Works fine so far, seems to be a fix. |
Any updates on this subject? @Zapotoczny |
I haven't had a problem since then so I think it's been fixed |
The crash occurred in very difficult scenarios, when the object's parent had been removed (for example, due to the decay of the boss's original body), which caused the reward container to lose the parent, but still remain in memory. From now on, we will set a new parent (the reward chest and the tile). Fixes #994 Fixes #1147
Priority
High
Area
What happened?
It happens very rarely and I can't reproduce it
crash_14.log
Thread 2 (Thread 0x7ffff79ac700 (LWP 1032388)):
#0 0x00005555557e6d07 in Reward::getParent() const ()
No symbol table info available.
#1 0x00005555557f2750 in Item::getHoldingPlayer() const ()
No symbol table info available.
#2 0x000055555572243e in Player::checkLootContainers(Item const*) ()
No symbol table info available.
#3 0x00005555557e92c7 in .LTHUNK63.lto_priv.0 ()
No symbol table info available.
#4 0x00005555559d9d5c in std::map<unsigned long, Reward*, std::less, std::allocator<std::pair<unsigned long const, Reward*> > >::size_type std::__detail::__erase_nodes_if<std::map<unsigned long, Reward*, std::less, std::allocator<std::pair<unsigned long const, Reward*> > >, Player::removeEmptyRewards()::{lambda(auto:1 const&)#1}>(std::map<unsigned long, Reward*, std::less, std::allocator<std::pair<unsigned long const, Reward*> > >&, Player::removeEmptyRewards()::{lambda(auto:1 const&)#1}) [clone .isra.0] ()
No symbol table info available.
#5 0x00005555559cd515 in Actions::useItem(Player*, Position const&, unsigned char, Item*, bool) [clone .isra.0] ()
No symbol table info available.
#6 0x00005555557a3948 in Dispatcher::threadMain() ()
No symbol table info available.
#7 0x00007ffff7d096b4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#8 0x00007ffff7fa6609 in start_thread (arg=) at pthread_create.c:477
ret =
pd =
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737347503872, 2277491176794939673, 140737488346366, 140737488346367, 140737488346368, 140737347436416, -2277509574247128807, -2277508747833056999}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#9 0x00007ffff7b41133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
What OS are you seeing the problem on?
Linux
Code of Conduct
The text was updated successfully, but these errors were encountered: