possible fake player crash
SwissalpS opened this issue · comments
2022-03-08 23:27:20: ERROR[Main]: /data/world//worldmods/signs_lib/api.lua:726: attempt to call method 'get_meta' (a nil value)
2022-03-08 23:27:20: ERROR[Main]: stack traceback:
2022-03-08 23:27:20: ERROR[Main]: /data/world//worldmods/signs_lib/api.lua:726: in function 'on_rightclick'
2022-03-08 23:27:20: ERROR[Main]: ...hare/minetest/games/minetest_game/mods/default/torch.lua:53: in function 'on_place'
2022-03-08 23:27:20: ERROR[Main]: /data/world//worldmods/pipeworks/wielder.lua:422: in function 'act'
2022-03-08 23:27:20: ERROR[Main]: /data/world//worldmods/pipeworks/wielder.lua:111: in function 'wielder_on'
2022-03-08 23:27:20: ERROR[Main]: /data/world//worldmods/pipeworks/wielder.lua:147: in function 'old_action_on'
2022-03-08 23:27:20: ERROR[Main]: /data/world//worldmods/mesecons_ratelimiter/api.lua:36: in function 'f'
2022-03-08 23:27:20: ERROR[Main]: /data/world//worldmods/monitoring/metrictypes/counter.lua:42: in function 'action_on'
2022-03-08 23:27:20: ERROR[Main]: /data/world//worldmods/mesecons/mesecons/internal.lua:192: in function </data/world//worldmods/mesecons/mesecons/internal.lua:185>
2022-03-08 23:27:20: ERROR[Main]: /data/world//worldmods/mesecons/mesecons/actionqueue.lua:137: in function 'old_execute'
2022-03-08 23:27:20: ERROR[Main]: ...d//worldmods/mesecons_debug/overrides/mesecons_queue.lua:20: in function 'f'
2022-03-08 23:27:20: ERROR[Main]: /data/world//worldmods/monitoring/metrictypes/counter.lua:42: in function 'execute'
2022-03-08 23:27:20: ERROR[Main]: /data/world//worldmods/mesecons/mesecons/actionqueue.lua:111: in function </data/world//worldmods/mesecons/mesecons/actionqueue.lua:73>
2022-03-08 23:27:20: ERROR[Main]: /usr/local/share/minetest/builtin/game/register.lua:422: in function </usr/local/share/minetest/builtin/game/register.lua:406>
2022-03-08 23:27:20: ERROR[Main]: stack traceback:
I hot-patched 14efa6e without testing.
alternatively pipeworks has a is fakeplayer method
yes, I am aware and don't use it by choice. This covers other mods doing similar things that don't have that field/method.
Universal method for testing fake player would be type(player) ~= 'userdata'
as all C++ backed instances are userdata
type while Lua based fake player is table
type.
The callstack in question:
- https://github.com/mt-mods/pipeworks/blob/master/wielder.lua#L422
- https://github.com/minetest/minetest_game/blob/5.4.1/mods/default/torch.lua#L53
I tried to reproduce this but somehow it doesn't trigger the error :/
EDIT: nevermind, worked with the "wood" sign
Additional background / drama
Just for context: the person triggeringreporting this error might have taken a message of me in the minetest-discord too serious/personal:
Yesterday:
And now this morning with presumably his alt: