pipeworks/wielder.lua:113: bad argument #1 to 'ipairs' (table expected, got nil) #1816
Labels
No Label
1. kind/balancing
1. kind/breaking
1. kind/bug
1. kind/construction
1. kind/documentation
1. kind/enhancement
1. kind/griefing
1. kind/invalid
1. kind/meme
1. kind/node limit
1. kind/other
1. kind/protocol
2. prio/controversial
2. prio/critical
2. prio/elevated
2. prio/good first issue
2. prio/interesting
2. prio/low
3. source/art
3. source/client
3. source/engine
3. source/ingame
3. source/integration
3. source/lag
3. source/license
3. source/mod upstream
3. source/unknown
3. source/website
4. step/approved
4. step/at work
4. step/blocked
4. step/discussion
4. step/help wanted
4. step/needs confirmation
4. step/partially fixed
4. step/question
4. step/ready to deploy
4. step/ready to QA test
4. step/want approval
5. result/cannot reproduce
5. result/duplicate
5. result/fixed
5. result/maybe
5. result/wontfix
ugh/petz
ugh/QA main
ugh/QA NOK
ugh/QA OK
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: your-land/bugtracker#1816
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
2022-04-23 10:31:57: ERROR[ConnectionSend]: con(4/1) dropped reliable packet for non existent peer_id: 899
2022-04-23 10:32:05: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'xp_redo' in callback environment_Step(): ...ve/5.5.0/Minetest_live/bin/../mods/pipeworks/wielder.lua:113: bad argument #1 to 'ipairs' (table expected, got nil)
2022-04-23 10:32:05: ERROR[Main]: stack traceback:
2022-04-23 10:32:05: ERROR[Main]: [C]: in function 'ipairs'
2022-04-23 10:32:05: ERROR[Main]: ...ve/5.5.0/Minetest_live/bin/../mods/pipeworks/wielder.lua:113: in function 'wielder_on'
2022-04-23 10:32:05: ERROR[Main]: ...ve/5.5.0/Minetest_live/bin/../mods/pipeworks/wielder.lua:147: in function 'action_on'
2022-04-23 10:32:05: ERROR[Main]: ...Minetest_live/bin/../mods/mesecons/mesecons/internal.lua:193: in function <...Minetest_live/bin/../mods/mesecons/mesecons/internal.lua:186>
2022-04-23 10:32:05: ERROR[Main]: ...etest_live/bin/../mods/mesecons/mesecons/actionqueue.lua:137: in function 'old_execute'
2022-04-23 10:32:05: ERROR[Main]: ...ve/worldmods/mesecons_debug/overrides/mesecons_queue.lua:20: in function 'execute'
2022-04-23 10:32:05: ERROR[Main]: ...etest_live/bin/../mods/mesecons/mesecons/actionqueue.lua:111: in function <...etest_live/bin/../mods/mesecons/mesecons/actionqueue.lua:73>
2022-04-23 10:32:05: ERROR[Main]: ...ive/5.5.0/Minetest_live/bin/../builtin/game/register.lua:425: in function <...ive/5.5.0/Minetest_live/bin/../builtin/game/register.lua:409>
that's ... bizarre. there's a nil check on
inv:get_list("main")
right before it gets passed to ipairs?This nil chekc is my doing. That's the dumfix I noted.
THis line
looked like that before:
hm. that means that the "main" inventory for that wielder node is uninitialized, which means it's not a proper wielder node? placed or moved w/ worldedit, perhaps?
it'd be useful to log the cases when it is empty, to see what/where the locus of the problem is.
Yeah, was able to replicate this locally (against a different version of pipeworks?)
steps:
{x=0,y=0,z=0}
{x=0,y=0,z=0}
, leaving air//fp set1 0 0 0
//fp set2 0 0 0
//r air dispenser_off
I'm unsure of what a proper solution for this would be. On one hand, pipeworks shouldn't have to assume that nodes might come into existence unitialized. On the other hand, Worldedit would become even slower if it had to initialize every node.
For comparison, on Blocky Survival (which didn't have pipeworks, but had similar issues w/ machine mods and worldedit), the rule of thumb was "don't WE regions with machines".
I reported this to upstream, I think its both: integration AND upstream, but no clue who is at fault here.
Did we worldedit regions with amchines at that time? Not that I can recall.
https://github.com/mt-mods/pipeworks/issues/24
your-land/administration#112
How did this ever work??
how did what ever work? pipeworks? it works fine if you want to run pipeworks and don't care about what other mods might assume. using pipeworks basically requires that all other mods be coded as if pipeworks were a fundamental part of the minecraft lua API.
and that's been the position of both VanessaE as well as mt-mods, which took over her mods when she gave up on the community.
aside: sometimes i feel like my constant criticism of the community makes people feel less welcome to contribute. that is absolutely not what i want. but i feel like the community needs to follow "best practices" for developing open source software (e.g. don't break documented things that most users assume won't change), far more than the current norm. if you change basic functionality, give trivial options for restoring it. and try not to break trivial functionality in the first place, even if that takes a little longer. cf what i'm doing to keep integration between the IRC mod and verbana, or smartshops and a number of other mods.
Fixed in
57ec3e7b62