Shift+rightclick on 5.9.0 with waypoint compass #7005

Closed
opened 2024-06-27 10:28:20 +02:00 by AliasAlreadyTaken · 4 comments

I shift+rightclicked with a waypoint compass in hand on a 5.9.0 server

2024-06-27 10:17:28: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'waypoint_compass' in callback item_OnPlace(): ...etest/5.9.0/minetest-dev/bin/../builtin/common/after.lua:152: attempt to index local 'self' (a nil value)
2024-06-27 10:17:28: ERROR[Main]: stack traceback:
2024-06-27 10:17:28: ERROR[Main]: 	...etest/5.9.0/minetest-dev/bin/../builtin/common/after.lua:152: in function 'cancel'
2024-06-27 10:17:28: ERROR[Main]: 	...netest-dev/bin/../mods/waypoint_compass/waypoint_lib.lua:231: in function 'hide'
2024-06-27 10:17:28: ERROR[Main]: 	...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:117: in function 'hide_hud_waypoint'
2024-06-27 10:17:28: ERROR[Main]: 	...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:182: in function 'update_hud_waypoint'
2024-06-27 10:17:28: ERROR[Main]: 	...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:341: in function <...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:320>

I shift+rightclicked with a waypoint compass in hand on a 5.9.0 server ``` 2024-06-27 10:17:28: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'waypoint_compass' in callback item_OnPlace(): ...etest/5.9.0/minetest-dev/bin/../builtin/common/after.lua:152: attempt to index local 'self' (a nil value) 2024-06-27 10:17:28: ERROR[Main]: stack traceback: 2024-06-27 10:17:28: ERROR[Main]: ...etest/5.9.0/minetest-dev/bin/../builtin/common/after.lua:152: in function 'cancel' 2024-06-27 10:17:28: ERROR[Main]: ...netest-dev/bin/../mods/waypoint_compass/waypoint_lib.lua:231: in function 'hide' 2024-06-27 10:17:28: ERROR[Main]: ...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:117: in function 'hide_hud_waypoint' 2024-06-27 10:17:28: ERROR[Main]: ...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:182: in function 'update_hud_waypoint' 2024-06-27 10:17:28: ERROR[Main]: ...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:341: in function <...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:320> ```
AliasAlreadyTaken added the
1. kind/bug
3. source/testserver
labels 2024-06-27 10:28:37 +02:00
AliasAlreadyTaken added this to the minetest 5.9.0 milestone 2024-06-27 10:28:45 +02:00
Author
Owner

Maybe not the shiftclick caused it, but when switching away from a compass

2024-06-27 10:30:37: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'waypoint_compass' in callback environment_Step(): ...etest/5.9.0/minetest-dev/bin/../builtin/common/after.lua:152: attempt to index local 'self' (a nil value)
2024-06-27 10:30:37: ERROR[Main]: stack traceback:
2024-06-27 10:30:37: ERROR[Main]: 	...etest/5.9.0/minetest-dev/bin/../builtin/common/after.lua:152: in function 'cancel'
2024-06-27 10:30:37: ERROR[Main]: 	...netest-dev/bin/../mods/waypoint_compass/waypoint_lib.lua:231: in function 'hide'
2024-06-27 10:30:37: ERROR[Main]: 	...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:117: in function 'hide_hud_waypoint'
2024-06-27 10:30:37: ERROR[Main]: 	...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:191: in function 'update_hud_waypoint'
2024-06-27 10:30:37: ERROR[Main]: 	...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:204: in function 'func'
2024-06-27 10:30:37: ERROR[Main]: 	...minetest-dev/bin/../builtin/profiler/instrumentation.lua:124: in function <...minetest-dev/bin/../builtin/profiler/instrumentation.lua:117>
2024-06-27 10:30:37: ERROR[Main]: 	...st/5.9.0/minetest-dev/bin/../builtin/common/register.lua:26: in function <...st/5.9.0/minetest-dev/bin/../builtin/common/register.lua:12>

Maybe not the shiftclick caused it, but when switching away from a compass ``` 2024-06-27 10:30:37: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'waypoint_compass' in callback environment_Step(): ...etest/5.9.0/minetest-dev/bin/../builtin/common/after.lua:152: attempt to index local 'self' (a nil value) 2024-06-27 10:30:37: ERROR[Main]: stack traceback: 2024-06-27 10:30:37: ERROR[Main]: ...etest/5.9.0/minetest-dev/bin/../builtin/common/after.lua:152: in function 'cancel' 2024-06-27 10:30:37: ERROR[Main]: ...netest-dev/bin/../mods/waypoint_compass/waypoint_lib.lua:231: in function 'hide' 2024-06-27 10:30:37: ERROR[Main]: ...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:117: in function 'hide_hud_waypoint' 2024-06-27 10:30:37: ERROR[Main]: ...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:191: in function 'update_hud_waypoint' 2024-06-27 10:30:37: ERROR[Main]: ...5.9.0/minetest-dev/bin/../mods/waypoint_compass/init.lua:204: in function 'func' 2024-06-27 10:30:37: ERROR[Main]: ...minetest-dev/bin/../builtin/profiler/instrumentation.lua:124: in function <...minetest-dev/bin/../builtin/profiler/instrumentation.lua:117> 2024-06-27 10:30:37: ERROR[Main]: ...st/5.9.0/minetest-dev/bin/../builtin/common/register.lua:26: in function <...st/5.9.0/minetest-dev/bin/../builtin/common/register.lua:12> ```
AliasAlreadyTaken added the
4. step/ready to QA test
4. step/QA OK
labels 2024-08-15 16:50:17 +02:00
Member

This was fixed by tour here (thank you tour!):
#6896

And it's caused by me mixing up method call syntax sugar, again (thing.method() vs thing:method()).

Took me a while to notice it after staring...

This is an engine change actually: https://github.com/minetest/minetest/pull/13477 (thanks for figuring it out, tour!)

Took me even longer to untangle this XD Was making no sense how it could work so long and then stop.

Problem is that now waypoint_ mods require 5.9 version of MT... (could fix it...). (thanks @tour for correcting me!)

Also, weirdly, minetest.after sometimes returns nil. Doing this in the /snippets:

local job = minetest.after(5, function() minetest.chat_send_all("timeout") end)
if job then
  minetest.chat_send_all("ok")
else
  minetest.chat_send_all("I'm going insane")
end

I get:

I am going insane
timeout

UPDATE:

What a mess :D
minetest never fails to amaze me... I hope luanti will be better.

Turns out, snippets mod is wrapping some core functions. Makes sense, but it's version of after function always returns nil.

Spent too much time being totally confused because of this...

This was fixed by `tour` here (thank you tour!): https://gitea.your-land.de/your-land/bugtracker/issues/6896 ~~And it's caused by me mixing up method call syntax sugar, again (`thing.method()` vs `thing:method()`).~~ ~~Took me a while to notice it after staring...~~ This is an engine change actually: https://github.com/minetest/minetest/pull/13477 (thanks for figuring it out, [tour](https://gitea.your-land.de/whosit/waypoint_compass/pulls/10)!) Took me even longer to untangle this XD Was making no sense how it could work so long and then stop. ~~Problem is that now `waypoint_` mods *require* 5.9 version of MT... (could fix it...).~~ (thanks @tour for correcting me!) Also, weirdly, `minetest.after` sometimes returns `nil`. Doing this in the `/snippets`: ```lua local job = minetest.after(5, function() minetest.chat_send_all("timeout") end) if job then minetest.chat_send_all("ok") else minetest.chat_send_all("I'm going insane") end ``` I get: ``` I am going insane timeout ``` UPDATE: What a mess :D minetest never fails to amaze me... I hope luanti will be better. Turns out, `snippets` mod is wrapping some `core` functions. Makes sense, but it's version of `after` function always returns nil. Spent too much time being totally confused because of this...
Member

Problem is that now waypoint_ mods require 5.9 version of MT... (could fix it...).

Why? pre-5.9 will simply not need the parameter self and thus ignore it.

see in https://github.com/minetest/minetest/pull/10103 that the docs always said to stop with : 🤓

> Problem is that now waypoint_ mods require 5.9 version of MT... (could fix it...). Why? pre-5.9 will simply not need the parameter self and thus ignore it. ~~see in https://github.com/minetest/minetest/pull/10103 that the docs always said to stop with `:`~~ 🤓
Member

Why? pre-5.9 will simply not need the parameter self and thus ignore it.

You are right :p (original comment fixed)
grumbles something about sloppiness of dynamic languages that don't care even about parameter count

> Why? pre-5.9 will simply not need the parameter self and thus ignore it. You are right :p (original comment fixed) ~~*grumbles something about sloppiness of dynamic languages that don't care even about parameter count*~~
AliasAlreadyTaken added the
5. result/fixed
label 2025-03-08 18:00:25 +01:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: your-land/bugtracker#7005
No description provided.