
EnderIO-1.10.2-3.0.1.117_beta Conduit lag
Vauxite opened this issue ยท 19 comments
Issue Description:
This issue has been present in both All The mods pack and FTB Present hermitpack (current)
What happens:
After some time the enderIO conduits start effecting the server tickrate.
What you expected to happen:
Not affecting the server performance that much.
Steps to reproduce:
- Place down plenty of energy conduits.
- Put something that produce in one end and a few consumers. (net negative)
Affected Versions (Do not use "latest"):
- EnderIO: 1.10.2-3.0.1.117_beta
- EnderCore: 1.10.2-0.4.1.56-beta
- Minecraft: 1.10.2
- Forge: forge-2092
Your most recent log file where the issue was present:
https://timings.aikar.co/v2/?id=e438b783044147af939debeea708d409§ion=all
looks to me like environmentaltech:controller_void_res_miner is causing chunk generation.
Is there any way to get that graph with a bit more detail? Ender IO::ConduitNetworkTickHandler_onServerTick() is a method that has basically one line of code...
I would love to get a more granular view of the issue. However I haven't found a profiler that will provide such info. You can go to chunk view and find all items placed in the world. however. I'm pretty certain it's related to energy conduits. Had most success causing lag with that.
One problem is that ConduitNetworkTickHandler_onServerTick handles all conduits: all blocks, in all worlds, of all types.
I'll probably add some debug timing output for this.
The lag managed to hold the server for 3mn, up to trigger a preventive crash:
---- Minecraft Crash Report ----
WARNING: coremods are present:
LoadingPlugin (Quark-r1.0-56.jar)
ShetiPhian-ASM (shetiphiancore-1.10.0-3.3.1.jar)
LoadingPlugin (sampler-1.66.jar)
IC2core (industrialcraft-2-2.6.69-ex110.jar)
LoadingPlugin (RandomThings-MC1.10.2-3.7.6.jar)
EnderCorePlugin (EnderCore-1.10.2-0.4.1.56-beta.jar)
NWRTweak (redstonepaste-mc1.9.4-1.7.4.jar)
SpongeCoremod (spongeforge-1.10.2-2098-5.0.0-BETA-1794.jar)
FMLPlugin (InventoryTweaks-1.61-58.jar)
LoadingHook (Mekanism-1.10.2-9.2.0.292.jar)
TransformerLoader (OpenComputers-MC1.10.2-1.6.0.3-rc.1.jar)
Contact their authors BEFORE contacting forge
// Don't be sad. I'll do better next time, I promise!
Time: 10/11/16 7:01 PM
Description: Watching Server
java.lang.Error
at net.minecraft.world.World.func_189508_F(World.java:2421)
at net.minecraft.world.World.func_175625_s(World.java:108)
at com.enderio.core.common.BlockEnder.getTileEntity(BlockEnder.java:160)
at crazypants.enderio.conduit.BlockConduitBundle.func_189540_a(BlockConduitBundle.java:868)
at org.spongepowered.common.event.tracking.CauseTracker.notifyBlockOfStateChange(CauseTracker.java:316)
at net.minecraft.world.WorldServer.func_175685_c(WorldServer.java:1263)
at crazypants.enderio.conduit.TileConduitBundle.doConduitsDirty(TileConduitBundle.java:255)
at crazypants.enderio.conduit.TileConduitBundle.doUpdate(TileConduitBundle.java:238)
at com.enderio.core.common.TileEntityBase.func_73660_a(TileEntityBase.java:36)
at org.spongepowered.common.event.tracking.TrackingUtil.tickTileEntity(TrackingUtil.java:194)
at net.minecraft.world.WorldServer.redirect$onUpdateTileEntities$zji000(WorldServer.java:1290)
at net.minecraft.world.World.func_72939_s(World.java:1255)
at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:709)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:709)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:387)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:613)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471)
at java.lang.Thread.run(Thread.java:745)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Server Watchdog
Stacktrace:
at net.minecraft.world.World.func_189508_F(World.java:2421)
at net.minecraft.world.World.func_175625_s(World.java:108)
at com.enderio.core.common.BlockEnder.getTileEntity(BlockEnder.java:160)
at crazypants.enderio.conduit.BlockConduitBundle.func_189540_a(BlockConduitBundle.java:868)
at org.spongepowered.common.event.tracking.CauseTracker.notifyBlockOfStateChange(CauseTracker.java:316)
at net.minecraft.world.WorldServer.func_175685_c(WorldServer.java:1263)
at crazypants.enderio.conduit.TileConduitBundle.doConduitsDirty(TileConduitBundle.java:255)
at crazypants.enderio.conduit.TileConduitBundle.doUpdate(TileConduitBundle.java:238)
at com.enderio.core.common.TileEntityBase.func_73660_a(TileEntityBase.java:36)
at org.spongepowered.common.event.tracking.TrackingUtil.tickTileEntity(TrackingUtil.java:194)
at net.minecraft.world.WorldServer.redirect$onUpdateTileEntities$zji000(WorldServer.java:1290)
at net.minecraft.world.World.func_72939_s(World.java:1255)
at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:709)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:709)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:387)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:613)
...
Stacktrace:
at net.minecraft.server.dedicated.ServerHangWatchdog.run(ServerHangWatchdog.java:63)
at java.lang.Thread.run(Thread.java:745)
-- System Details --
Details:
Minecraft Version: 1.10.2
Operating System: Linux (amd64) version 3.14.32-xxxx-grs-ipv6-64
Java Version: 1.8.0_101, Oracle Corporation
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 2061653544 bytes (1966 MB) / 5324668928 bytes (5078 MB) up to 5368709120 bytes (5120 MB)
JVM Flags: 20 total; -Xms3G -Xmx5G -XX:+UseG1GC -XX:+UseStringDeduplication -XX:ParallelGCThreads=2 -XX:+CMSClassUnloadingEnabled -XX:+CMSIncrementalPacing -XX:+AggressiveOpts -XX:NewRatio=3 -XX:SurvivorRatio=3 -XX:TargetSurvivorRatio=80 -XX:MaxTenuringThreshold=8 -XX:MaxGCPauseMillis=10 -XX:GCPauseIntervalMillis=50 -XX:+ExplicitGCInvokesConcurrent -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:+BindGCTaskThreadsToCPUs -Xnoclassgc -Xss4M
IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94
FML: MCP 9.32 Powered by Forge 12.18.1.2095 104 mods loaded, 104 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
...
I'm unable to reproduce the lag in single player with just EnderIO.
@sherkas can you share pictures of your setup?
Just putting a comment here that im running version .120 and im getting extreme conduit lag. After taking apart my mods its come down to me leading to ender io. I had to create an rfworld to escape the lag but of course eventually built conduits. At that point even that world is lagged (only contains cobble, ender io spawners and conduits). After removing ender io the whole world is seemless with no lag.
Ive only used the green (20krf/t) conduit and item conduit if that matters.
The problem causing this lag is Sponge. Update it or follow the steps mentioned in this issue
I currently am not using Sponge and am experiencing this issue. Shutting off an EnderIO autocrafting set up it stops the lag on the server that has been slowly building up and crashing things.
Sorry for not being able to send a WarmRoast report and/or an other profiling proof now, but my server is having lag spikes, and EnderIO seems to be causing that. The class is the same. Here is the timings: https://timings.aikar.co/?id=3f7c72898cf64f8eb6b5b43b26224c1d
I wouldn't believe a single timing from that Aikar tool, it has the tendency to measure complete nonsense.
The reason is that I'm reporting the SAME issue as the people above, so it should matter.
So, you report that you have the same issue as people had 3 months ago but cannot give any data that would enable me to do anything about it. Not even the Ender IO version you are using.
That should matter? No, it doesn't.
The data you present is useless on so many levels. I see that half your tick time is used up by all of your world's conduits combined. So if you have a world with 8000 conduits constantly shuffling around items, fluids and energy and using the latest Ender IO, I'd call that an extreme success for all those countless optimisations I added in the last months. If you have it with the Ender IO version from 4 months ago and a single conduit in your world, I'd call it a bad case of not updating. That is if that measurement even is correct. Just yesterday I got an Aikar report that claimed the conduit code spending its time adding energy capabilities to item stacks---which is just one example of the nonsense it measures.
PS: Which reminds me...: Closing this issue for being outdated. The code in question has changed too much since November.
Sorry, you could have replied me about the mod versions. I replied here because of I don't like opening duplicated issues, so I first search for already opened ones. In the Timings you can see the count of conduits, and my server is new and doesn't have chunk loaders, my guess is that there are 200 +/- conduits in the world.
EnderIO-1.10.2-3.1.164
EnderCore-1.10.2-0.4.1.65-beta
Forge 1.10.2-12.18.3.2202
My modpack is this one, and you can see the mod list here.
also the version is directly in the report..
https://timings.aikar.co/?id=3f7c72898cf64f8eb6b5b43b26224c1d§ion=plugins
Still, that output is next to useless.
First, it says you have 1,283 conduits. Then it says the processing for all conduits takes "8.56% of tick". And in another view it says it takes "50.31% of tick", which it presumable spends mostly in "EnergyUpgradePowerAdapter_attachCapabilities"---a method that has nothing to do with conduits at all.
PS: Also, when looking at the whole thing some things look funny: 264 Actually Additions worms---that is a lot, considering that they hydrate farmland and generate growth ticks. About 10,000 tile entities---that's also a lot, even assuming most don't tick that's a big load for any server.