Extended Drawers

Extended Drawers

145k Downloads

[Bug]: Draw controller network not working

Tigertatzee opened this issue ยท 26 comments

commented

Description of the issue

Hello, I have a Minecraft server with the Create Live 4 mod pack. Your mod is also included in the modpack, but whenever we try to build a Draw controller network, it doesn't work, and we receive the following error in the console: "Encountered invalid graph in position when detecting node changes. Id: 106, pos: class_2338{x=44, y=79, z=-134}" The coordinates are the ones where we just placed the Draw controllers. Do you have any idea how we can fix this?

Reproduction steps

Build a Draw network,
play with it for a while without any issues,
and suddenly it stops working.
Try everything that comes to mind,
hoping that the mod developer has another idea.
Unable to write on Forge,
write on GitHub.

Mod version

1.3.9

Operating System

windows 10

Minecraft version

1.19.2

Other mods

create live 4 modpack version 1.7.0 with 68 mods

Server

Happens

Client

Happens

Logs

Encountered invalid graph in position when detecting node changes. Id: 106, pos: class_2338{x=44, y=79, z=-134}

Extra Context

No response

commented

It works in a new singleplayer world and in a newly created world on the server. The debugrender also works. I also tried removing and re-placing all the draws, but every time you remove or place a draw, the error occurs. However, if you place the draws elsewhere where there were no broken draws before, everything works normally.

As a test, I just built a new draw road that runs through the removed broken draw road at one point, and the new road works without any problems. Then, I tested the functionality of the drawcontroller in the new road at the coordinates where the old draw road was. I took items from the drawcontroller, and now it gets weird because when you try to retrieve items from the drawcontroller, the items that are inside the already removed draws come out, but not the ones that should be in the new draws. This also works without the new draw street and you can add items to the draw controller.

commented

Seems like something might be messing with the removal of my block entities. I'll look into it

commented

You might be able to fix the issue temporarily by using the /graphlib update command (might be a bit different) on the area containing the drawers.

commented

It seems like a small part of your graph data got corrupted, likely caused by a server crash.

If you are an operator, the command /graphlib updateblocks <from-x> <from-y> <from-z> <to-x> <to-y> <to-z> should fix your issue.

Also, if you are an operator, you can use the command /graphlib debugrender start and /graphlib debugrender stop to see if the parts are connecting.

If you are not an operator, the easiest solution here should be to break and replace all the Access Points, Connectors, Drawers, and Shadow Drawers connected here.

If you could also post screenshots of the debug renderer, that would be quite helpful. Thank you!

commented

If you can find a way to reliably reproduce this on a new world it would be nice. That would make a permanent fix possible

commented

konsole
minecraft eror
Thank you for the hinds, but unfortunately it doesn't work. When I try to use the "/graphlib debugrender start" command, I get kicked from the server (see attached image). The same thing happens in a singleplayer world. With the "/graphlib updateblocks " command, there is a confirmation in the chat that it's being updated and that it's finished, but it doesn't actually work. In the server console, I see the error message again (see image 1). However, everything works fine again in the singleplayer world afterwards.

Now, what I did was simply load the world from the server into the singleplayer, execute the command there, and then put the world back on the server, and it works again until I move or build additional draws. Then, the newly placed draws connections doesn't work, with the error from image 1.

commented

Does this happen in a new singleplayer world? If it does, it means that something in the modpack is causing an incompatability

commented

If you could share your world and modpack, that would be quite helpful. Because currently, we're not quite sure what kind of bug we're dealing with.

commented

of course here is the world and a link to the mod pack, the version of the mod pack is 1.7.0
At first glance, it works in singleplayer, but when you add draws, it doesn't (for example, a new draw with sand,
you can't add or remove sand using the draw controller).
the draw street ist by xyz 47 78 -134
mod pack: https://www.curseforge.com/minecraft/modpacks/create-live_4/files/4513871
World: https://drive.google.com/drive/folders/1Q_KOZ2ObdjBQ0aTrFz9IAWtxFYyRzJdD?usp=sharing

commented

What would be causing errors to persist at specific block locations would be if broken BlockNodes were sticking around at the given locations. However, the error message you're getting is saying there is no Graph at those positions, meaning no BlockNodes at those positions either. So we're facing some kind of logical impossibility, which means we just don't have enough information to know what's going wrong.

commented

Oh, you don't happen to have any sort of multi-threaded chunk-loading or multi-threaded dimensions mods do you? That could certainly mess this up.

commented

well, the server had a lot of problems working properly and crashed several times. it worked until we continued to build with the draws, then some draw roads worked and others didn't, it always differed between the server starts until it didn't work at all (now the server works fine)

commented

Ok, looking at the world now, something has prevented the creation of any graphs beyond 0x28. Weird.

commented

if you disconnect the draw connectors there (xyz 50 73 -101) the draw controllers still work (take items from the conveyor belt and new ones come out of the unconnected draw controllers)

commented

Yeah, it does sound like something is also messing with node removal. We might be dealing with multiple bugs / mod interactions.

commented

Thanks again for the help, I hope this can be fixed

commented

Wow, those regions are definitely referring to a lot of graphs that don't exist. Did you experience a huge crash right before this happened?

commented

Ok, so it looks like the modpack is using a slightly older version of Extended Drawers that is using a slightly older version of GraphLib. Here is a version that doesn't kick you when you do /graphlib debugrender start: graphlib-0.3.7+1.19.2.jar You can add it to your mods folder.

Hopefully, being able to see the graph connections will help you see why things aren't connecting.

One thing to note, is that places like this, where you see multiple nodes in one block, these are blocks you're going to want to break and replace:

2023-05-07_11 45 57

commented

Hmm, this definitely seems to have been caused by a server crash:

2023-05-07_11 55 34

It can be cleaned up with a couple simple runs of:
/graphlib updateblocks ~20 ~20 ~20 ~-20 ~-20 ~-20

commented

I should probably look into incremental graph saving, but that will come with GraphLib 1.0.

commented

Thanks for the help, it's finally working again. and where nothing is displayed, set it again, right? grafik

Yup. You'll want to break and replace it.

commented

I'll probably only implement 1.0 support in 1.20 or later. I'd rather not write more migration code

Yeah. 1.0 will only be officially published once 1.20 is out anyways. And I still have a lot of work to do on it before then.

commented

Thanks for the help, it's finally working again. and where nothing is displayed, set it again, right?
grafik

commented

I'll probably only implement 1.0 support in 1.20 or later. I'd rather not write more migration code

commented

what does that mean?
no matter in any case a great and good mod

commented

Here's the tracking issue on GraphLib for anyone wondering: Kneelawk/GraphLib#10 because, while it is fixable, it is still annoying.