Project Red - Expansion

Project Red - Expansion

31M Downloads

Game crashes during heavy use

mitolegy opened this issue ยท 9 comments

commented

I tried building a 4-bit demultiplexer for instruction decoding. it doesn't use many of the new red-power components, the logic is still done by Redstone torches. I'm only using the red-power wires to speed up signal propagation through the circuit. its also made from individual wires, the circuit does not contain any bundled wires.

the problem occurs when the input wraps from 1111 to 0000 or 0111 to 1000. suggesting its something to do with too many block updates as the circuit when built using normal Redstone works fine but is slower.

the game will just close and I get this crash report:

---- Minecraft Crash Report ----

WARNING: coremods are present:
Contact their authors BEFORE contacting forge

// You're mean.

Time: 3/6/20 6:08 PM
Description: Exception while updating neighbours

java.lang.RuntimeException: Report this to ProjectRed developers
at mrtjp.projectred.core.WirePropagator$.propagateTo(propagation.scala:75)
at mrtjp.projectred.core.WirePropagator$.propagateTo(propagation.scala:82)
at mrtjp.projectred.transmission.TWireCommons$class.onNeighborChanged(wireabstracts.scala:51)
at mrtjp.projectred.transmission.WirePart.onNeighborChanged(wireabstracts.scala:170)
at codechicken.multipart.TileMultipart$$anonfun$onNeighborBlockChange$1.apply(TileMultipart.scala:448)
at codechicken.multipart.TileMultipart$$anonfun$onNeighborBlockChange$1.apply(TileMultipart.scala:448)
at codechicken.multipart.TileMultipart.operate(TileMultipart.scala:135)
at codechicken.multipart.TileMultipart.onNeighborBlockChange(TileMultipart.scala:448)
at codechicken.multipart.BlockMultipart.func_189540_a(BlockMultipart.scala:223)
at net.minecraft.block.state.BlockStateContainer$StateImplementation.func_189546_a(BlockStateContainer.java:481)
at net.minecraft.world.World.func_190524_a(World.java:551)
at mrtjp.projectred.core.PropagationRun$$anonfun$finish$2.apply(propagation.scala:137)
at mrtjp.projectred.core.PropagationRun$$anonfun$finish$2.apply(propagation.scala:137)
at scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:315)
at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:971)
at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:971)
at mrtjp.projectred.core.PropagationRun.finish(propagation.scala:137)
at mrtjp.projectred.core.PropagationRun.runLoop(propagation.scala:182)
at mrtjp.projectred.core.PropagationRun.start(propagation.scala:151)
at mrtjp.projectred.core.WirePropagator$.propagateTo(propagation.scala:76)
at mrtjp.projectred.core.WirePropagator$.propagateTo(propagation.scala:82)
at mrtjp.projectred.transmission.TWireCommons$class.onPartChanged(wireabstracts.scala:38)
at mrtjp.projectred.transmission.WirePart.onPartChanged(wireabstracts.scala:170)
at codechicken.multipart.TileMultipart$$anonfun$internalPartChange$1.apply(TileMultipart.scala:495)
at codechicken.multipart.TileMultipart$$anonfun$internalPartChange$1.apply(TileMultipart.scala:495)
at codechicken.multipart.TileMultipart.operate(TileMultipart.scala:135)
at codechicken.multipart.TileMultipart.internalPartChange(TileMultipart.scala:495)
at codechicken.multipart.TileMultipart.notifyPartChange(TileMultipart.scala:484)
at codechicken.multipart.minecraft.RedstoneTorchPart.toggle(RedstoneTorchPart.java:165)
at codechicken.multipart.minecraft.RedstoneTorchPart.scheduledTick(RedstoneTorchPart.java:101)
at codechicken.multipart.TickScheduler$ChunkTickScheduler.processTick(TickScheduler.scala:168)
at codechicken.multipart.TickScheduler$ChunkTickScheduler$$anonfun$processTicks$1.apply(TickScheduler.scala:158)
at codechicken.multipart.TickScheduler$ChunkTickScheduler$$anonfun$processTicks$1.apply(TickScheduler.scala:158)
at scala.collection.TraversableLike$$anonfun$filterImpl$1.apply(TraversableLike.scala:259)
at scala.collection.immutable.List.foreach(List.scala:383)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:45)
at scala.collection.TraversableLike$class.filterImpl(TraversableLike.scala:258)
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:270)
at scala.collection.AbstractTraversable.filter(Traversable.scala:104)
at codechicken.multipart.TickScheduler$ChunkTickScheduler.processTicks(TickScheduler.scala:158)
at codechicken.multipart.TickScheduler$WorldTickScheduler$$anonfun$postTick$1.apply(TickScheduler.scala:63)
at codechicken.multipart.TickScheduler$WorldTickScheduler$$anonfun$postTick$1.apply(TickScheduler.scala:63)
at scala.collection.TraversableLike$$anonfun$filterImpl$1.apply(TraversableLike.scala:259)
at scala.collection.mutable.HashSet.foreach(HashSet.scala:78)
at scala.collection.TraversableLike$class.filterImpl(TraversableLike.scala:258)
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:270)
at scala.collection.AbstractTraversable.filter(Traversable.scala:104)
at codechicken.multipart.TickScheduler$WorldTickScheduler.postTick(TickScheduler.scala:63)
at codechicken.lib.world.WorldExtensionManager.postTick(WorldExtensionManager.java:218)
at codechicken.lib.world.WorldExtensionManager.access$700(WorldExtensionManager.java:20)
at codechicken.lib.world.WorldExtensionManager$WorldExtensionEventHandler.serverTick(WorldExtensionManager.java:140)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_69_WorldExtensionEventHandler_serverTick_WorldTickEvent.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
at net.minecraftforge.fml.common.FMLCommonHandler.onPostWorldTick(FMLCommonHandler.java:274)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:776)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:185)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
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 thread
Stacktrace:
at mrtjp.projectred.core.WirePropagator$.propagateTo(propagation.scala:75)
at mrtjp.projectred.core.WirePropagator$.propagateTo(propagation.scala:82)
at mrtjp.projectred.transmission.TWireCommons$class.onNeighborChanged(wireabstracts.scala:51)
at mrtjp.projectred.transmission.WirePart.onNeighborChanged(wireabstracts.scala:170)
at codechicken.multipart.TileMultipart$$anonfun$onNeighborBlockChange$1.apply(TileMultipart.scala:448)
at codechicken.multipart.TileMultipart$$anonfun$onNeighborBlockChange$1.apply(TileMultipart.scala:448)
at codechicken.multipart.TileMultipart.operate(TileMultipart.scala:135)
at codechicken.multipart.TileMultipart.onNeighborBlockChange(TileMultipart.scala:448)
at codechicken.multipart.BlockMultipart.func_189540_a(BlockMultipart.scala:223)
at net.minecraft.block.state.BlockStateContainer$StateImplementation.func_189546_a(BlockStateContainer.java:481)

-- Block being updated --
Details:
Source block type: ID #253 (tile.null // codechicken.multipart.BlockMultipart // forgemultipartcbe:multipart_block)
Block: forgemultipartcbe:multipart_block
Block location: World: (227,63,-220), Chunk: (at 3,3,4 in 14,-14; contains blocks 224,0,-224 to 239,255,-209), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
Stacktrace:
at net.minecraft.world.World.func_190524_a(World.java:551)
at mrtjp.projectred.core.PropagationRun$$anonfun$finish$2.apply(propagation.scala:137)
at mrtjp.projectred.core.PropagationRun$$anonfun$finish$2.apply(propagation.scala:137)
at scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:315)
at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:971)
at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:971)
at mrtjp.projectred.core.PropagationRun.finish(propagation.scala:137)
at mrtjp.projectred.core.PropagationRun.runLoop(propagation.scala:182)
at mrtjp.projectred.core.PropagationRun.start(propagation.scala:151)
at mrtjp.projectred.core.WirePropagator$.propagateTo(propagation.scala:76)
at mrtjp.projectred.core.WirePropagator$.propagateTo(propagation.scala:82)
at mrtjp.projectred.transmission.TWireCommons$class.onPartChanged(wireabstracts.scala:38)
at mrtjp.projectred.transmission.WirePart.onPartChanged(wireabstracts.scala:170)
at codechicken.multipart.TileMultipart$$anonfun$internalPartChange$1.apply(TileMultipart.scala:495)
at codechicken.multipart.TileMultipart$$anonfun$internalPartChange$1.apply(TileMultipart.scala:495)
at codechicken.multipart.TileMultipart.operate(TileMultipart.scala:135)
at codechicken.multipart.TileMultipart.internalPartChange(TileMultipart.scala:495)
at codechicken.multipart.TileMultipart.notifyPartChange(TileMultipart.scala:484)
at codechicken.multipart.minecraft.RedstoneTorchPart.toggle(RedstoneTorchPart.java:165)
at codechicken.multipart.minecraft.RedstoneTorchPart.scheduledTick(RedstoneTorchPart.java:101)
at codechicken.multipart.TickScheduler$ChunkTickScheduler.processTick(TickScheduler.scala:168)
at codechicken.multipart.TickScheduler$ChunkTickScheduler$$anonfun$processTicks$1.apply(TickScheduler.scala:158)
at codechicken.multipart.TickScheduler$ChunkTickScheduler$$anonfun$processTicks$1.apply(TickScheduler.scala:158)
at scala.collection.TraversableLike$$anonfun$filterImpl$1.apply(TraversableLike.scala:259)
at scala.collection.immutable.List.foreach(List.scala:383)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:45)
at scala.collection.TraversableLike$class.filterImpl(TraversableLike.scala:258)
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:270)
at scala.collection.AbstractTraversable.filter(Traversable.scala:104)
at codechicken.multipart.TickScheduler$ChunkTickScheduler.processTicks(TickScheduler.scala:158)
at codechicken.multipart.TickScheduler$WorldTickScheduler$$anonfun$postTick$1.apply(TickScheduler.scala:63)
at codechicken.multipart.TickScheduler$WorldTickScheduler$$anonfun$postTick$1.apply(TickScheduler.scala:63)
at scala.collection.TraversableLike$$anonfun$filterImpl$1.apply(TraversableLike.scala:259)
at scala.collection.mutable.HashSet.foreach(HashSet.scala:78)
at scala.collection.TraversableLike$class.filterImpl(TraversableLike.scala:258)
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:270)
at scala.collection.AbstractTraversable.filter(Traversable.scala:104)
at codechicken.multipart.TickScheduler$WorldTickScheduler.postTick(TickScheduler.scala:63)
at codechicken.lib.world.WorldExtensionManager.postTick(WorldExtensionManager.java:218)
at codechicken.lib.world.WorldExtensionManager.access$700(WorldExtensionManager.java:20)
at codechicken.lib.world.WorldExtensionManager$WorldExtensionEventHandler.serverTick(WorldExtensionManager.java:140)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_69_WorldExtensionEventHandler_serverTick_WorldTickEvent.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
at net.minecraftforge.fml.common.FMLCommonHandler.onPostWorldTick(FMLCommonHandler.java:274)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:776)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:185)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
at java.lang.Thread.run(Thread.java:745)

-- System Details --
Details:
Minecraft Version: 1.12.2
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_51, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 433902584 bytes (413 MB) / 1422393344 bytes (1356 MB) up to 2863661056 bytes (2731 MB)
JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx3072m -Xms256m -XX:PermSize=256m
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP 9.42 Powered by Forge 14.23.5.2847 16 mods loaded, 16 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

| State  | ID                      | Version         | Source                                            | Signature                                |
|:------ |:----------------------- |:--------------- |:------------------------------------------------- |:---------------------------------------- |
| LCHIJA | minecraft               | 1.12.2          | minecraft.jar                                     | None                                     |
| LCHIJA | mcp                     | 9.42            | minecraft.jar                                     | None                                     |
| LCHIJA | FML                     | 8.0.99.99       | forge-1.12.2-14.23.5.2847.jar                     | None                                     |
| LCHIJA | forge                   | 14.23.5.2847    | forge-1.12.2-14.23.5.2847.jar                     | None                                     |
| LCHIJA | codechickenlib          | 3.2.3.358       | CodeChickenLib-1.12.2-3.2.3.358-universal.jar     | f1850c39b2516232a2108a7bd84d1cb5df93b261 |
| LCHIJA | chickenchunks           | 2.4.2.74        | ChickenChunks-1.12.2-2.4.2.74-universal.jar       | f1850c39b2516232a2108a7bd84d1cb5df93b261 |
| LCHIJA | forgemultipartcbe       | 2.6.2.83        | ForgeMultipart-1.12.2-2.6.2.83-universal.jar      | f1850c39b2516232a2108a7bd84d1cb5df93b261 |
| LCHIJA | microblockcbe           | 2.6.2.83        | ForgeMultipart-1.12.2-2.6.2.83-universal.jar      | None                                     |
| LCHIJA | minecraftmultipartcbe   | 2.6.2.83        | ForgeMultipart-1.12.2-2.6.2.83-universal.jar      | None                                     |
| LCHIJA | journeymap              | 1.12.2-5.7.0    | journeymap-1.12.2-5.7.0.jar                       | None                                     |
| LCHIJA | mrtjpcore               | 2.1.4.43        | MrTJPCore-1.12.2-2.1.4.43-universal.jar           | None                                     |
| LCHIJA | projectred-core         | 4.9.4.120       | ProjectRed-1.12.2-4.9.4.120-Base.jar              | None                                     |
| LCHIJA | projectred-integration  | 4.9.4.120       | ProjectRed-1.12.2-4.9.4.120-integration.jar       | None                                     |
| LCHIJA | projectred-transmission | 4.9.4.120       | ProjectRed-1.12.2-4.9.4.120-integration.jar       | None                                     |
| LCHIJA | projectred-illumination | 4.9.4.120       | ProjectRed-1.12.2-4.9.4.120-lighting.jar          | None                                     |
| LCHIJA | worldedit               | 6.1.10-SNAPSHOT | worldedit-forge-mc1.12.2-6.1.10-SNAPSHOT-dist.jar | None                                     |

Loaded coremods (and transformers): 
GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
Profiler Position: N/A (disabled)
Player Count: 1 / 8; [EntityPlayerMP['___DESPACITO___'/3, l='Redstone', x=198.71, y=60.02, z=-236.39]]
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to 'fml,forge' 
commented

Closing as this is likely no longer relevant after the Java rewrite

commented

Do you still remember the layout that caused the issue? Its possible this was fixed, but I'd like to test it again.

commented

ok I've managed to reconstruct the circuit I think. seems to run fine. wrapping around doesn't seem to bother Minecraft more then any other large set of block updates.

commented

Thanks for checking. I have 1.15 versions now of some of the modules. If you go to the Actions tab, there is a workflow that builds every commit. The link with zip files is at the bottom:
https://github.com/MrTJP/ProjectRed/actions/runs/739537561

These jars are untested though. I just got it building a few days ago, so I'm not sure if they even load up. But all you need is CCL and CBMultipart (MrTJPCore is no longer a thing).

commented

I cant find CCL, and CBMultipart doesn't seem to have any public releases yet.

commented

You can grab the latest dev build from the maven repo: https://maven.covers1624.net/codechicken/CBMultipart/

Otherwise, you can post a screenshot of the circuit, and I can try it in my dev setup.

commented

Do you still remember the layout that caused the issue? Its possible this was fixed, but I'd like to test it again.

ill have to reconstruct both the modpack and circuit. as I no longer have the save. but I can try. I see the latest version on curse is from 2019. do you have a newer version or should I just try using it? its version 4.9.4.120 for minecraft 1.12.2

commented

I apologize, CCL and CBM are still in development. Covers1624 is still working on getting it ready for release, so I don't know what state its in. I'll replicate your setup later today and try to see if I can cause the crash to happen.

commented

I'm getting an error. CBMultiPart needs Scorge:3.1 and Ive no clue what it is. but try and describe the circuit for you.
image

its essentially a bunch of And gates. made of inverters. with the yellow lines acting as the body of the gate itself and the blue lines supplying the signals.

the bottom picture shows how different outputs are selected. A will require the line to be low for its torch to be low. B must be high. all torches along a yellow line (top row of torches in picture nr 2) must be low for the output of the line to be high.

its based of a vanilla design. made more compact thanks to your wires. if you need help feel free to ask