#2 Unable to remove

Closed
opened 1 year ago by kizeren · 19 comments
kizeren commented 1 year ago

After last commit, we are no longer able to remove the asrs controller. Please remove lifts and cells first. There are none.

After last commit, we are no longer able to remove the asrs controller. Please remove lifts and cells first. There are none.
NathanS21 referenced this issue from a commit 1 year ago
NathanS21 commented 1 year ago
Owner

That's my fault. I think I just pushed some changes that should fix the issue. If not I'll add a button to the formspec that will remove the node as long as there is no inventory.

That's my fault. I think I just pushed some changes that should fix the issue. If not I'll add a button to the formspec that will remove the node as long as there is no inventory.
kizeren commented 1 year ago
Poster

Before I update, I ran into this. 2023-10-23 18:44:12: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'asrs' in callback node_on_dig(): /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:56: attempt to index a nil value 2023-10-23 18:44:12: ERROR[Main]: stack traceback: 2023-10-23 18:44:12: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:56: in function 'can_dig' 2023-10-23 18:44:12: ERROR[Main]: /home/mcbride/minetest/bin/../builtin/game/item.lua:466: in function

Before I update, I ran into this. 2023-10-23 18:44:12: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'asrs' in callback node_on_dig(): /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:56: attempt to index a nil value 2023-10-23 18:44:12: ERROR[Main]: stack traceback: 2023-10-23 18:44:12: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:56: in function 'can_dig' 2023-10-23 18:44:12: ERROR[Main]: /home/mcbride/minetest/bin/../builtin/game/item.lua:466: in function </home/mcbride/minetest/bin/../builtin/game/item.lua:460>
kizeren commented 1 year ago
Poster

2023-10-23 18:47:14: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'default' in callback item_OnPlace(): /home/mcbride/minetest/bin/../mods/asrs/functions.lua:21: attempt to index local 'sys_data' (a nil value) 2023-10-23 18:47:14: ERROR[Main]: stack traceback: 2023-10-23 18:47:14: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/functions.lua:21: in function 'update_inventory' 2023-10-23 18:47:14: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:39: in function 'on_rightclick' 2023-10-23 18:47:14: ERROR[Main]: /home/mcbride/minetest/bin/../builtin/game/item.lua:313: in function

2023-10-23 18:47:14: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'default' in callback item_OnPlace(): /home/mcbride/minetest/bin/../mods/asrs/functions.lua:21: attempt to index local 'sys_data' (a nil value) 2023-10-23 18:47:14: ERROR[Main]: stack traceback: 2023-10-23 18:47:14: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/functions.lua:21: in function 'update_inventory' 2023-10-23 18:47:14: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:39: in function 'on_rightclick' 2023-10-23 18:47:14: ERROR[Main]: /home/mcbride/minetest/bin/../builtin/game/item.lua:313: in function </home/mcbride/minetest/bin/../builtin/game/item.lua:306>
kizeren commented 1 year ago
Poster

Completely forgot to give information. We are on 5.8.0-dev build.

Completely forgot to give information. We are on 5.8.0-dev build.
NathanS21 commented 1 year ago
Owner

I think I know what the issue is. Early versions of the mod used a different backend, and when I changed it over I didn't retain backwards compatibility, as the old structure was awful. I'll add a button that will let you remove the node and bypass all the checks that are throwing the errors.

I think I know what the issue is. Early versions of the mod used a different backend, and when I changed it over I didn't retain backwards compatibility, as the old structure was awful. I'll add a button that will let you remove the node and bypass all the checks that are throwing the errors.
NathanS21 commented 1 year ago
Owner

I just added a button in the settings tab which will let you remove a system. You will loose any inventory in the system, but the controller node will be added to your inventory or dropped if you don't have inventory space.

I just added a button in the settings tab which will let you remove a system. You will loose any inventory in the system, but the controller node will be added to your inventory or dropped if you don't have inventory space.
kizeren commented 1 year ago
Poster

Ok. Kind of tired this evening. I will give it a go on the server in the morning time.

Ok. Kind of tired this evening. I will give it a go on the server in the morning time.
NathanS21 commented 1 year ago
Owner

You're running this on a server. 0.o I haven't done that much testing, please let me know of any issues, even if they don't crash the server. I've been quite busy IRL this week, so I wasn't able to push fixes as quickly as I would have liked.

You're running this on a server. 0.o I haven't done that much testing, please let me know of any issues, even if they don't crash the server. I've been quite busy IRL this week, so I wasn't able to push fixes as quickly as I would have liked.
kizeren commented 1 year ago
Poster

scratch that.

2023-10-24 18:19:53: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'farming' in callback item_OnPlace(): /home/mcbride/minetest/bin/../mods/asrs/functions.lua:21: attempt to index local 'sys_data' (a nil value) 2023-10-24 18:19:53: ERROR[Main]: stack traceback: 2023-10-24 18:19:53: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/functions.lua:21: in function 'update_inventory' 2023-10-24 18:19:53: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:39: in function 'on_rightclick' 2023-10-24 18:19:53: ERROR[Main]: /home/mcbride/minetest/bin/../builtin/game/item.lua:313: in function

scratch that. 2023-10-24 18:19:53: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'farming' in callback item_OnPlace(): /home/mcbride/minetest/bin/../mods/asrs/functions.lua:21: attempt to index local 'sys_data' (a nil value) 2023-10-24 18:19:53: ERROR[Main]: stack traceback: 2023-10-24 18:19:53: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/functions.lua:21: in function 'update_inventory' 2023-10-24 18:19:53: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:39: in function 'on_rightclick' 2023-10-24 18:19:53: ERROR[Main]: /home/mcbride/minetest/bin/../builtin/game/item.lua:313: in function </home/mcbride/minetest/bin/../builtin/game/item.lua:306>
kizeren commented 1 year ago
Poster

And on left click

2023-10-24 18:24:12: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'asrs' in callback node_on_dig(): /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:154: attempt to index a nil value 2023-10-24 18:24:12: ERROR[Main]: stack traceback: 2023-10-24 18:24:12: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:154: in function 'can_dig' 2023-10-24 18:24:12: ERROR[Main]: /home/mcbride/minetest/bin/../builtin/game/item.lua:466: in function

And on left click 2023-10-24 18:24:12: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'asrs' in callback node_on_dig(): /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:154: attempt to index a nil value 2023-10-24 18:24:12: ERROR[Main]: stack traceback: 2023-10-24 18:24:12: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/nodes.lua:154: in function 'can_dig' 2023-10-24 18:24:12: ERROR[Main]: /home/mcbride/minetest/bin/../builtin/game/item.lua:466: in function </home/mcbride/minetest/bin/../builtin/game/item.lua:460>
NathanS21 commented 1 year ago
Owner

Could you check if there is a asrs_systems file in the world directory. It looks like this crash is from the node trying to reference backend data that doesn't exist. I can create a fix for it, but any inventory in the system will be lost.

Could you check if there is a asrs_systems file in the world directory. It looks like this crash is from the node trying to reference backend data that doesn't exist. I can create a fix for it, but any inventory in the system will be lost.
NathanS21 commented 1 year ago
Owner

Another option, if there is no inventory in the system would be to remove it with world-edit or similar. The trouble seems to be that metadata didn't have the system_id written, and that ID is required for all the functions to check the inventory size and connected nodes. I found some old systems I placed in my test world and I'm having similar errors trying to remove them as features were changed after they were placed. I'm trying to work my way through to make them diggable without crashing the game, but I won't be able to do anything about lost inventory.

Another option, if there is no inventory in the system would be to remove it with world-edit or similar. The trouble seems to be that metadata didn't have the system_id written, and that ID is required for all the functions to check the inventory size and connected nodes. I found some old systems I placed in my test world and I'm having similar errors trying to remove them as features were changed after they were placed. I'm trying to work my way through to make them diggable without crashing the game, but I won't be able to do anything about lost inventory.
NathanS21 commented 1 year ago
Owner

I just pushed some changes that locally prevented crashes when digging old controllers. I'm not sure if it will help you, but it shouldn't make anything worse.

I just pushed some changes that locally prevented crashes when digging old controllers. I'm not sure if it will help you, but it shouldn't make anything worse.
kizeren commented 1 year ago
Poster

I am testing on a server now. its public and just for asrs can't seem to get it to crash and will move over to primary server and see.

I am testing on a server now. its public and just for asrs can't seem to get it to crash and will move over to primary server and see.
NathanS21 commented 1 year ago
Owner

Any newly placed controllers/systems should work without troubles. It's just the ones from earlier code that are having problems, as they didn't get data assigned when they were made which the code now expects.

Any newly placed controllers/systems should work without troubles. It's just the ones from earlier code that are having problems, as they didn't get data assigned when they were made which the code now expects.
kizeren commented 1 year ago
Poster

Ok old controller through this. But on test world seems fine. 2023-10-24 19:31:02: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'asrs' in callback on_playerReceiveFields(): /home/mcbride/minetest/bin/../mods/asrs/formspecs.lua:135: attempt to index local 'sys_data' (a nil value) 2023-10-24 19:31:02: ERROR[Main]: stack traceback: 2023-10-24 19:31:02: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/formspecs.lua:135: in function

2023-10-24 19:31:02: ERROR[Main]: /home/mcbride/minetest/bin/../builtin/common/register.lua:26: in function

Ok old controller through this. But on test world seems fine. 2023-10-24 19:31:02: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'asrs' in callback on_playerReceiveFields(): /home/mcbride/minetest/bin/../mods/asrs/formspecs.lua:135: attempt to index local 'sys_data' (a nil value) 2023-10-24 19:31:02: ERROR[Main]: stack traceback: 2023-10-24 19:31:02: ERROR[Main]: /home/mcbride/minetest/bin/../mods/asrs/formspecs.lua:135: in function </home/mcbride/minetest/bin/../mods/asrs/formspecs.lua:94> 2023-10-24 19:31:02: ERROR[Main]: /home/mcbride/minetest/bin/../builtin/common/register.lua:26: in function </home/mcbride/minetest/bin/../builtin/common/register.lua:12>
NathanS21 commented 1 year ago
Owner

I can see the problem there, but sadly have no good way to fix it. The next/last page buttons check for the maximum inventory to display the contents. Outside of writing two functions to check the inventory count, one of which would only be used for older systems there is no good solution. The best option would be to remove all the old controllers and replace them. Unfortunately this requires removing all the inventory, storage cells, and lift nodes.

I can see the problem there, but sadly have no good way to fix it. The next/last page buttons check for the maximum inventory to display the contents. Outside of writing two functions to check the inventory count, one of which would only be used for older systems there is no good solution. The best option would be to remove all the old controllers and replace them. Unfortunately this requires removing all the inventory, storage cells, and lift nodes.
kizeren commented 1 year ago
Poster

Okay after making the wife made for kicking her lol. We removed all the existing ASRS machines and readded the mod. All seems to be working now.

Okay after making the wife made for kicking her lol. We removed all the existing ASRS machines and readded the mod. All seems to be working now.
NathanS21 commented 1 year ago
Owner

Beautiful. I'll close this for now, but if you have any other issues feel free to open a new issue.

Beautiful. I'll close this for now, but if you have any other issues feel free to open a new issue.
Sign in to join this conversation.
No Label
No Milestone
No assignee
2 Participants
Loading...
Cancel
Save
There is no content yet.