BuildCraft|Core

BuildCraft|Core

7M Downloads

1.12.2 Buildcraft 7.99.12 - Get kicked when placing quarry/no connections.

wesker1213 opened this issue ยท 13 comments

commented

Buildcraft version: 7.99.12
Forge version: 14.23.1.2555
Link to crashreport or log (on pastebin or gist, please don't put the entire log here) :
Singleplayer/multiplayer: Multiplayer, can't reproduce in single player.

Additional information:

https://imgur.com/a/mh7ib

In the above picture, are my landmarks, prior to the quarry getting placed.

https://imgur.com/a/8Grxk

This would be the quarry post placement, but I can't place the quarry in multiplayer. The server hangs for a few short moments before booting me off, and the only way that I am able to reconnect, is by rebooting the server. Then the quarry is back in my inventory after the reboot.

This doesn't happen in single player. During my single player testing to see if I could reproduce this, I was unable to connect anything but kinesis pipes to the quarry for power. Not sure if that's intended, but figured I'd mention anyway.

commented

Can you find and upload the server log file? Or a crash report, if it generates one?

(Note that your image links aren't formatted correctly as they aren't working)

commented

No, you might have to get one of the disappearing addons or make your own that converts energy between them if that's what you want.

commented

These are the logs I could find since I've been on today.

Latest > https://pastebin.com/SFtYH50L
fml server latest > https://pastebin.com/MRqLzBRm
fml server 3 > https://pastebin.com/V6nx0zqT
fml server 2 > https://pastebin.com/E2p5YLGb
fml server 1 > https://pastebin.com/f2x5we4s
fml junk > https://pastebin.com/iEQ4r8s8

Not sure how to fix the image links. But it does appear to be sporadic ... so it doesn't happen all the time. Also note, that smaller quarry sizes don't seem to derp it as much either, but the max size (64x64) do. Also, the fluxducts do not connect in single, or server play.

commented

AEnterprise fixed them. Sorry.

Fluxducts transfer RF/FE, but buildcraft only works in MJ, so they won't connect.

commented

Are there any plans to enable RF support in Buildcraft since most power gen mods use it?

commented

Nope.

commented

Got that bug too. Server/client do not generate any errors, but the server keeps 100% single core usage and doesn't respond to console commands (like "stop" or "save-all").

commented

ok that means the server got stuck in an infinite loop, would it be possible to get it to heapen again and then use something like visualVM to get a thread dump for us to look at?

commented

If the server gets in an infinite loop the I'll assume that it gets stuck at https://github.com/BuildCraft/BuildCraft/blob/8.0.x/common/buildcraft/builders/tile/TileQuarry.java#L166 - as that's the only potentially infinite loop.

commented

seems likely

@ogurets could you try with 7.99.13-pre11 and see if this still heapens? maybe the added safety checks from #3923 could have fixed this as side effect

commented

Made VisualVM thread dump: https://pastebin.com/ecfjWS4S
I think that's the part you were looking for:

"Server thread" #18 prio=5 os_prio=0 tid=0x000000001e544000 nid=0x690 runnable [0x0000000027c3e000]
   java.lang.Thread.State: RUNNABLE
        at java.util.stream.AbstractPipeline.wrapSink(Unknown Source)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
        at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
        at java.util.stream.ReferencePipeline.forEach(Unknown Source)
        at java.util.stream.ReferencePipeline$7$1.accept(Unknown Source)
        at java.util.ArrayList$ArrayListSpliterator.tryAdvance(Unknown Source)
        at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
        at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
        at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
        at java.util.stream.MatchOps$MatchOp.evaluateSequential(Unknown Source)
        at java.util.stream.MatchOps$MatchOp.evaluateSequential(Unknown Source)
        at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
        at java.util.stream.ReferencePipeline.anyMatch(Unknown Source)
        at buildcraft.builders.tile.TileQuarry.getFramePoses(TileQuarry.java:171)
        at buildcraft.builders.tile.TileQuarry.updatePoses(TileQuarry.java:386)
        at buildcraft.builders.tile.TileQuarry.onPlacedBy(TileQuarry.java:270)
        at buildcraft.lib.block.BlockBCTile_Neptune.func_180633_a(BlockBCTile_Neptune.java:66)
        at buildcraft.builders.block.BlockQuarry.func_180633_a(BlockQuarry.java:103)
        at net.minecraft.item.ItemBlock.placeBlockAt(ItemBlock.java:186)
        at net.minecraft.item.ItemBlock.func_180614_a(ItemBlock.java:54)
        at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:852)
        at net.minecraft.item.ItemStack.func_179546_a(ItemStack.java:186)
        at net.minecraft.server.management.PlayerInteractionManager.func_187251_a(PlayerInteractionManager.java:489)
        at net.minecraft.network.NetHandlerPlayServer.func_184337_a(NetHandlerPlayServer.java:739)
        at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.func_148833_a(SourceFile:55)
        at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.func_148833_a(SourceFile:11)
        at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at net.minecraft.util.Util.func_181617_a(SourceFile:46)
        at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:721)
        - locked <0x00000006c4280510> (a java.util.ArrayDeque)
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:396)
        at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:666)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:524)
        at java.lang.Thread.run(Unknown Source)

I suppose the issue is tied to the quarry size, as I've maxed out it's size along Z axis, like 60x64 (not sure about precision of "64" though, as I've just placed a landmark at the end of a blue ray of the previous landmark). It's not a blind guess, as I've managed to walk around this bug by marking a smaller area (2-3 blocks smaller, around 60x61) at the same place.

7.99.13-pre11 version didn't resolve it. Thread dump is here: https://pastebin.com/DvE9rjZR

Also while tinkering with this quarry, something else occured:
https://imgur.com/a/BVULn
https://imgur.com/GamWSJi
Not sure if it is the same issue or another. I were not able to reproduce that and has not been in the area when it happened, but the whole area was chunkloaded. After replacing it at the exact same place with the same landmarks it worked fine.

commented

Thanks, that confirms my suspicions. I'll look into making it a finite loop in the future.

As for the frame being in the wrong place I guess I'll look into that separately...

commented

This loop should become infinite only if frame positions are not continuous, if there is frame that is separated from others.