mt-mods / travelnet

Network of teleporter-boxes that allows easy travelling to other boxes on the same network. (Mod for Minetest)
https://content.minetest.net/packages/mt-mods/travelnet/
GNU General Public License v3.0
7 stars 12 forks source link

[crash] Latest update crashes server when right-clicking on travelnet. #49

Closed dennisjenkins75 closed 2 years ago

dennisjenkins75 commented 2 years ago

Server: "EdenLost", running multicraft-2.0.0.

ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'mesecons_wires' in callback item_OnPlace(): /home/1hit/worlds/world/worldmods/travelnet/formspecs.lua:202: attempt to index a nil value
stack traceback:
        /home/1hit/worlds/world/worldmods/travelnet/formspecs.lua:202: in function 'current'
        ...it/worlds/world/worldmods/travelnet/formspecs-legacy.lua:20: in function 'show_current_formspec'
        .../worlds/world/worldmods/travelnet/register_travelnet.lua:24: in function 'on_rightclick'
        /home/1hit/multicraft/bin/../builtin/game/item.lua:424: in function </home/1hit/multicraft/bin/../builtin/game/item.lua:417>
BuckarooBanzay commented 2 years ago

Code in question: https://github.com/mt-mods/travelnet/blob/302e4252628837806d53654f2ad4dd52aaabbee8/formspecs.lua#L200-L203

Could apply the following diff for debugging purposes and report the findings?

diff --git a/formspecs.lua b/formspecs.lua
index 7246c75..02e1667 100644
--- a/formspecs.lua
+++ b/formspecs.lua
@@ -197,6 +197,11 @@ function travelnet.formspecs.primary(options, player_name)
                        )
        end

+       print(dump({
+               options = options,
+               player_formspec_data = player_formspec_data,
+               player_name = player_name
+       }))
        if player_name == options.owner_name
        or minetest.check_player_privs(player_name, { travelnet_remove = true })
        or travelnet.allow_dig(player_name, options.owner_name, options.station_network, player_formspec_data[player_name].pos)
OgelGames commented 2 years ago

The same thing happened a few times on the test server (test.pandorabox.io), so not a multicraft issue ;)

ServerError: AsyncErr: Lua: Runtime error from mod '*builtin*' in callback item_OnPlace(): /data/world//worldmods/travelnet/formspecs.lua:202: attempt to index a nil value
stack traceback:
    /data/world//worldmods/travelnet/formspecs.lua:202: in function 'current'
    /data/world//worldmods/travelnet/formspecs-legacy.lua:20: in function 'show_current_formspec'
    /data/world//worldmods/travelnet/register_travelnet.lua:24: in function 'on_rightclick'
    /usr/local/share/minetest/builtin/game/item.lua:455: in function </usr/local/share/minetest/builtin/game/item.lua:448>
BuckarooBanzay commented 2 years ago

ha, nice, thanks @OgelGames :+1: