Integrated Dynamics

Integrated Dynamics

63M Downloads

Network corruption in RFTools dimensions

ouroborus opened this issue ยท 6 comments

commented

Seems like there's some issue with load ordering between Integrated Dynamics and RFTools dimensions. During server load, my server generates these logs:

[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:23] [Server thread/INFO] [mcjty.lib.varia.Logging]: RFTools: server is starting
[14:14:23] [Server thread/INFO] [mcjty.lib.varia.Logging]: Registering RFTools dimensions: 3 4 

The result is a corrupt network in the particular RFTools dimension. Breaking the wires and replacing them fixes it until the next time the server is rebooted.

Integrated Dynamics 1.12-0.9.3
IntegratedDynamics-Compat 1.0.0
Integrated Tunnels 1.12-1.3.3

commented

Should be solvable with some event priority reordering.
Thanks for reporting!

commented

@McJty It looks like you are registering dimensions on FMLServerStartedEvent: https://github.com/McJty/RFToolsDimensions/blob/3bea596e01b90cf249959204de911e46f254c7e3/src/main/java/mcjty/rftoolsdim/RFToolsDim.java#L144

Any reason why you are doing this here, and not in FMLServerStartingEvent? The logging message seems to indicate that this should occur in the latter event.
If there is no particular reason to use that specific event, would it be possible to call if from the other event? That would solve this issue, as there is no such thing as a FMLServerStartedPostEvent ID could subscribe to instead.

commented

Is the world available then? I didn't think it would be

commented

@McJty As far as I can see, that part of your code only handles the registration of dimension IDs inside DimensionManager, and AFAIK, this does not depend on the world being loaded. So I think this could even be moved all the way up to preInit (but don't take my word for it).

commented

That code uses:

        RfToolsDimensionManager dimensionManager = RfToolsDimensionManager.getDimensionManager(world);

And that code needs world.getMapStorage() to be ready and working as there is where I store the dimension ID's

commented

Ah, I see, I missed that part. Guess I'll have to think of another way of fixing this then. Thanks anyways :-)