ruifung / MECapabilityAdapter

Exposes ME connections via forge Capabilities.
Do What The F*ck You Want To Public License
6 stars 9 forks source link

Dense cable strangeness (duplicated AE endpoints, missing channels) #13

Open ArchaeanDragon opened 2 years ago

ArchaeanDragon commented 2 years ago

First off, just FYI, I am playing using the DDSS modpack.

Because Forestry Carpenters are used heavily to craft all kinds of useful items in this pack, what I am trying to do is to reduce the base clutter of having tons of them set up for autocrafting. I have an AE2 ME network with lots of channels available. I am using Compact Machines 3 to create a 5x5x5 space and putting 16 Carpenters into it. I am also putting 1 ME Interface and 1 ME Import Bus on each (16 total of each, 32 total endpoints) to hold the pattern for that Carpenter and to pull in the product from the crafting. I am using a dedicated colored Dense Smart cable from the ME Controller multiblock to a ME Capability Adapter sitting on top of the CM block. Inside, I have another ME Capability Adapter on one of the walls with a tunnel set to connect to the top face on the outside, and another Dense Smart Cable bus connected to that. From that bus, I have one regular smart cable going to each block of 4 Carpenter ME Interfaces and ME Import Buses (8 endpoints total). Fluids and power for the Carpenters are provided via Thermal Expansion ducts from the bottom face of the CM.

Here's where the weirdness started. Initially, the Dense Smart Cable on the outside would light up, showing all 32 channels used. However, inside, only 11-14 of the channels would show being used on the cables. I could get different results based on how I arranged the cables and connections to the Interfaces and Import Buses, but never more than 14 channels would show up. At this point, I was on version 1.1.0 of this mod, as that is what is shipped with the modpack. Additionally, I initially set it up on the outside where the CMs were adjacent to one another, which meant that the ME Capability Adapters were also adjacent, and I thought that might be a problem as they would try to connect to each other and the one inside the CM and get confused, so I moved the CMs and Adapters so they were isolated from one another. This had no effect on the inside/outside channel discrepancy, however.

In addition, when I used the Network Tool to examine the contents of the ME Network, it showed I had an extra 16 ME Interfaces and an extra 16 Import Buses than I could account for. The network at present is being rebuilt to handle this autocrafting setup, so I have not reconnected much else other than the minimum necessary to function (Terminals, wireless AP, Drives, a 3x3 crafting processor multiblock, and some Molecular Assemblers and Interfaces to support them). When I disconnect the one CM I am testing, the count of Interfaces and Import Buses is correct.

After fiddling with this setup for a while, I noted that there was a newer version of the mod (v1.1.3) so I downloaded it and installed it. After relaunching, I have been able to get up to 26 channels out of 32 inside the CM, and all 32 channels are showing used outside the CM still, and it appears that the number of Interfaces and Import Buses on the network is still doubling the ones inside the CM. There are 16 of each inside the CM. When I connect the ME Capability Adapter on the outside to the network, it adds 32 of each.

I have not seen any documentation stating that the ME Capability Adapter needs channels itself, so I am at a loss as to where the missing channels are going.

So, to sum up, here are the two main issues I am experiencing: 1) There are missing channels going from the outside of a CM to the inside. 2) All the ME endpoints inside the CM are duplicated in the network upon connection.

I am considering trying a workaround using P2P tunnels and only using an 8-channel Smart Cable going through the Adapters, but the current configuration "should work", according to all the documentation and examples I can find.

Update: As I am writing this, I happen to have just restarted the game, and I reconnected the CM to the network again to do some more debugging. Going inside the CM, I see I am back to only 12 channels being active, even though all 32 endpoints are connected. All 32 channels are showing used on the outside, per normal. Endpoint duplication is still occurring as well, showing +16 Import Buses and Interfaces than I know exist in the network.

Additional Update: I removed all ME Capability Adapters in the world and in all CMs I have. When I place an Adapter by itself and look at it with the Network Tool, it shows just the single Adapter. When I place it on any of the other (2, currently) CMs which have nearly identical contents to the first one, I also see just the single Adapter. However, whenever I place it on the original CM (named "CarpenterCluster0"; the others are named "CarpenterCluster1" and "CarpenterCluster2", which I note are 17-character names, in case that is important), I see 3 Adapters, and the full ME Network contents of one of the Cluster CMs, DESPITE there not being another Adapter inside of the CM at all. It's almost like the Adapter is remembering a phantom copy of CarpenterCluster0 and is connecting to it, rather than the actual one. After some more testing, it appears that is the core of my issue. I re-setup CC1 and CC2, and they are working perfectly. All channels being available/used, and the correct number of endpoints being reported on the network. However, no matter what I do, if I put an Adapter on top of CC0, even if I removed the top face tunnel as well as the Adapter inside, it STILL reports as if it were connected to all the contents of CC0. So that is the problem. Somehow, the Adapter is connecting to a phantom copy of CC0, or it thinks it is. That explains why I am getting less than half of the endpoints, because it is re-jiggering the channels, split between the real copy of CC0, and the phantom copy of CC0.

At this point, I don't know if it is a bug in Compact Machines, where it has actually duplicated the contents of CC0 somewhere else that I can't get access to, or if it some kind of duplicated reference in this mod, where it thinks it still is connected to a phantom copy of CC0 that doesn't exist. I guess I can empty out and destroy the current CC0 compact machine, and create another one, as either way, the phantom phenomenon seems to be connected to that specific CM block. I can't help but think that it may be related to the Adapter blocks being set next to one another back when I was placing the CCx machines right next to one another, and somehow it duplicated some data. At the time I started noticing these issues, I had only placed down the three CMs, but only two were adjacent (basically the third was on a separate fluid/power bus nearby, but not adjacent). If there is any way to clear some internal table entries in whole or in part, that could be one way to check this. These are all my first foray into using these blocks, so I don't care if it resets everything related to them.

ArchaeanDragon commented 2 years ago

Yet one more update:

After fixing CC0 and setting up all three clusters with recipes, and verifying their proper operation, I shutdown and exited the game for the night. When I came back today, I discovered that all 3 clusters have now been duplicated. The channels inside each are showing only 12 channels available out of 32, and I have double the number of interfaces and import buses on the network.

This is definitely a problem with this mod. It also probably explains other people's issues with their setups on server restart.

At this point, I don't think this mod can be used effectively for any purpose until it is fixed, as the duplication on restart issue will break any setup I can think of.

ArchaeanDragon commented 2 years ago

Last update:

Since it seems to be having a problem with server restarts, I tried just removing the Adapters from the outside on top of the CMs, and restarting the game. Once I was back in-game, I first checked to verify there were no connections to any CMs with Adapters and no ghost ME endpoints. Everything was as expected. I then replaced the Adapters on top of the CMs, then removed and replaced each of the Dense Smart Cables on each and waited for the ME network to update. When I did this, everything came up normal. I had full channel usage inside each CM Cluster, and there were no duplicated endpoints.

At this point I would suggest looking at your startup code and seeing if you are somehow accidentally duplicating the network inside the CM via the connection. If I start up with the Adapters in place, I get duplicated contents and missing channels (because they are shared with the duplicate(s)). If I start up without the Adapters, and then replace them after, they work fine.

Until this is fixed, the only workaround is to remove the adapters before exiting the game, and place them back after restarting it, and that is very tedious and clumsy.

PunishedBadger commented 8 months ago

Hey, know you posted this a long time ago but did you ever find a fix for this? having a similar problem with duplicated interfaces and channels and it's driving me crazy. Thanks in advance.