Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

critical engine crash due autocrafter #117

Closed
Niklp09 opened this issue Feb 13, 2023 · 4 comments · Fixed by #118
Closed

critical engine crash due autocrafter #117

Niklp09 opened this issue Feb 13, 2023 · 4 comments · Fixed by #118

Comments

@Niklp09
Copy link
Contributor

Niklp09 commented Feb 13, 2023

Memory access error (memory dump written) / Speicherzugriffsfehler (Speicherabzug geschrieben) (139/SIGSEGV)
This is actually just a pipeworks autocrafter problem, but Techage uses the autocrafter from pipeworks

Has occurred already 6 times on my server.

Locally reproduced instruction


Releated issues:
luanti-org/luanti#11805
https://gitea.your-land.de/your-land/bugtracker/issues/2816
pandorabox-io/pandorabox.io#720

@fluxionary
Copy link

fluxionary commented Feb 13, 2023

for reference, we resolved this issue w/ pipeworks on your-land by disabling dragging items from/to the "output" (craft prediction) inventory.

local def = minetest.registered_nodes["pipeworks:autocrafter"]

local old_allow_metadata_inventory_move = def.allow_metadata_inventory_move
local old_allow_metadata_inventory_put = def.allow_metadata_inventory_put
local old_allow_metadata_inventory_take = def.allow_metadata_inventory_take

minetest.override_node("pipeworks:autocrafter", {
	allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
		if from_list == "output" or "to_list" == "output" then
			return 0
		end
		return old_allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
	end,
	allow_metadata_inventory_put = function(pos, listname, index, stack, player)
		if listname == "output" then
			return 0
		end
		return old_allow_metadata_inventory_put(pos, listname, index, stack, player)
	end,
	allow_metadata_inventory_take = function(pos, listname, index, stack, player)
		if listname == "output" then
			return 0
		end
		return old_allow_metadata_inventory_take(pos, listname, index, stack, player)
	end,
})

@Niklp09
Copy link
Contributor Author

Niklp09 commented Feb 13, 2023

I'm testing that currently on my server, I got the patch yesterday from Bla and Alias (and have adapted it to techage)
anti_sigsgv.patch.txt

@joe7575
Copy link
Owner

joe7575 commented Feb 14, 2023

If that's a problem, it's not just the autocrafter who's affected... also furnace, fab, etc.

@debagos
Copy link

debagos commented Apr 13, 2023

If that's a problem, it's not just the autocrafter who's affected... also furnace, fab, etc.

Nah not only the autocrafter, it's a general bug/problem: luanti-org/luanti#11882

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants