Closed thomasrudin closed 4 years ago
ERROR[Main]: ServerError: AsyncErr: environment_Step: Runtime error from mod '3d_armor' in callback environment_Step(): /data/world//worldmods/skinsdb/api.lua:5: attempt to index local 'player' (a nil value) ERROR[Main]: stack traceback: ERROR[Main]: /data/world//worldmods/skinsdb/api.lua:5: in function 'get_player_skin' ERROR[Main]: /data/world//worldmods/skinsdb/init.lua:37: in function 'get_player_skin' ERROR[Main]: /data/world//worldmods/3d_armor/3d_armor/init.lua:249: in function 'init_player_armor' ERROR[Main]: /data/world//worldmods/3d_armor/3d_armor/init.lua:308: in function 'func' ERROR[Main]: /usr/local/share/minetest/builtin/common/after.lua:20: in function 'globalstep' ERROR[Main]: ...//worldmods/monitoring/monitoring/builtin/globalstep.lua:29: in function <...//worldmods/monitoring/monitoring/builtin/globalstep.lua:20> ERROR[Main]: /usr/local/share/minetest/builtin/game/register.lua:429: in function
I don't think this is related to any change actually, just a plain mod bug.
The crashes in mobs_redo are more interesting, it seems on_step
gets called despite the object being "gone" (as the engine calls it).
A simple workaround would be to do this, however this sounds like an engine bug and should be fixed there.
Edit: Just checked the engine code, on_step is only called if the object still exists (since 5.0) so the actual issue here lies elsewhere.
Thanks for investigating :+1:, i see if i can reproduce/fix that on the test-server the next few days...
Edit: Just checked the engine code, on_step is only called if the object still exists (since 5.0) so the actual issue here lies elsewhere.
Those bugs would justify a revert, right? The current state on the master
branch won't work with most of the worlds out there... :disappointed:
Those bugs would justify a revert, right?
Hard to answer. The patch should not have broken any well behaving mods. Without having the mobs_redo crashes narrowed down, you don't know who's in the wrong, how many mods this would affect and whether the engine should be less strict.
Ok, figured out the mobs_redo issue:
Inside on_step
> do_env_damage
> check_for_death
the code might delete the entity.
But the the rest of on_step (including the do_states
seen in the backtrace) continues running and crashes when the (deleted) entity does not return useful values.
In short: Not an engine bug.
Commented on minetest/minetest#9390. I noticed this too (with mobs_redo)
patched with https://github.com/pandorabox-io/minetest_docker/commit/30b23262a9f56a28093ab3d88f3739cccc3c81d2, closing the issue...
Links
Potential causes