Closed MobButcher closed 3 years ago
Cannot replicate the issue with barebones mods like Sodium and other optimization ones. TreeFalling is involved for sure, because I couldn't replicate the crash without it or with any other similar mod.
With these mods:
[02:57:15] [main/INFO]: [FabricLoader] Loading 60 mods:
- architectury@2.3.23
- cloth-basic-math@0.5.1
- cloth-config2@5.0.34
- fabric@0.37.0+1.17
- fabric-api-base@0.3.0+a02b446313
...
- fabricloader@0.11.6
- fallingtree@2.12.2
- ferritecore@3.0.1
- hydrogen@0.3
- java@16
- lithium@0.7.3
- minecraft@1.17.1
- notenoughcrashes@3.3.1+1.17
- reeses-sodium-options@1.1.2
- smoothboot@1.16.5-1.6.0
- sodium@0.3.0+build.5
- sodium-extra@0.3.3
I've managed to make to get the error without crashing.
[03:03:06] [Server thread/FATAL]: Error executing task on Server
java.util.ConcurrentModificationException: null
at Not Enough Crashes deobfuscated stack trace.(1.17.1+build.31) ~[?:?]
at java.util.HashMap.compute(HashMap.java:1321) ~[?:?]
at net.minecraft.block.AbstractBlock.handler$zlm000$calcBlockBreakingDelta(AbstractBlock:532) ~[?:?]
at net.minecraft.block.AbstractBlock.calcBlockBreakingDelta(AbstractBlock:378) ~[?:?]
at net.minecraft.block.AbstractBlock$AbstractBlockState.calcBlockBreakingDelta(AbstractBlock:794) ~[?:?]
at net.minecraft.server.network.ServerPlayerInteractionManager.processBlockBreakingAction(ServerPlayerInteractionManager:168) ~[?:?]
at net.minecraft.server.network.ServerPlayNetworkHandler.onPlayerAction(ServerPlayNetworkHandler:1012) ~[?:?]
at net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket.apply(PlayerActionC2SPacket:34) ~[?:?]
at net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket.apply(PlayerActionC2SPacket:8) ~[?:?]
at net.minecraft.network.NetworkThreadUtils.method_11072(NetworkThreadUtils:21) ~[?:?]
at net.minecraft.class_2600$$Lambda$6503/0x0000000045630208.run(Unknown Source) ~[?:?]
at net.minecraft.server.ServerTask.run(ServerTask:18) ~[?:?]
at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor:151) ~[?:?]
at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor:23) ~[?:?]
at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer:788) ~[intermediary-minecraft-1.17.1-client.jar:?]
at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer:164) ~[intermediary-minecraft-1.17.1-client.jar:?]
at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor:125) ~[?:?]
at net.minecraft.server.MinecraftServer.runOneTask(MinecraftServer:770) ~[intermediary-minecraft-1.17.1-client.jar:?]
at net.minecraft.server.MinecraftServer.runTask(MinecraftServer:764) ~[intermediary-minecraft-1.17.1-client.jar:?]
at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor:110) ~[?:?]
at net.minecraft.server.MinecraftServer.runTasksTillTickEnd(MinecraftServer:748) [intermediary-minecraft-1.17.1-client.jar:?]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer:701) [intermediary-minecraft-1.17.1-client.jar:?]
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer:270) [intermediary-minecraft-1.17.1-client.jar:?]
at net.minecraft.server.MinecraftServer$$Lambda$5548/0x0000000045246ca8.run(Unknown Source) [intermediary-minecraft-1.17.1-client.jar:?]
at java.lang.Thread.run(Thread.java:853) [?:?]
[03:03:08] [Server thread/WARN]: Mismatch in destroy block pos: class_2338{x=-24, y=72, z=190} class_2338{x=-24, y=72, z=189}
Adding DynamicFPS breaks the game.
I'll edit this message here to see if disabling DynamicFPS will eliminate the crash completely or if there's something else in my whackload of mods to blame.
Adding other mods crashed the game completely, but it still remains a question what even allows this error to exist.
The error without complete crash seems to only happen on the first time I attempt to break a log through the tall grass. Subsequent attempts don't generate errors.
java.util.ConcurrentModificationException
at java.util.HashMap.compute(HashMap.java:1321)
at net.minecraft.block.AbstractBlock.handler$cjm000$calcBlockBreakingDelta(AbstractBlock:1532)
This is happening way down in the Minecraft stack. I think this is more due to a mod that changes some core aspect of the game (like you said, sodium, dynamicfps, ...). Though the whole stack seems to be only Minecraft so that's weird.
As this is ConcurrentModificationException it may not be reproducible all the time, but FallingTree may help see that issue as it breaks a lot of blocks at once.
I'm working for now so will take a look at it in the weekend.
I can't reproduce it with just FallingTree, so seems it clearly has something to do while another mod is present. If you can identify which one that could help.
Another thing that is weird to me is the stacktrace. The class net.minecraft.block.AbstractBlock#calcBlockBreakingDelta
doesn't exists anymore in 1.17.1. It should now be net.minecraft.world.level.block.state.BlockBehaviour#getDestroyProgress
.
Anyway, there's only one spot where it seems possible that it comes from FallingTree. Can you try with this version and see if it helps? https://www.dropbox.com/t/woU4QrrXGCkDnPKD
Just tried the updated .jar, bonemealed grass near a tree and tried to break through it: no crash, no error in logs, everything seems to look alright. I'll test it out a bit more, but for now it seems to be fixed. Also, #182 has also happened to me, albeit I use speed multiplicand of 1.2. I'll test the new version to see if switching to ConcurrentHashMap fixes that too.
About mods that have been causing this issue: I'm using Fabulously Optimized modpack, and some combination of mods from there seems to cause the issue. I was trying to figure out specifically which ones do, but it takes me about 10 minutes to boot up a game, log into a world, and test the issue, so I can't do too much testing.
With the new version, try all I might, I couldn't reproduce this issue or #182. Thank you for fixing it! I'll reopen it if it's not the case.
Describe the bug
The crash happens when the player aims at a log block through a transparent block without a collision box that breaks instantly and tries to break the trunk of the tree through it.
Expected result: Trying to start breaking the log the transparent block breaks normally and "transfers" the breaking action target to the tree.
Actual result: The game freezes exactly at the moment the action is attempted. without rendering another frame or emitting a sound; stays frozen for about 1.5 seconds, and then crashes in a way that allows Not Enough Crashes to catch that.
Crash log link: (duplicated below for posterity) https://gist.githubusercontent.com/natanfudge/53fca953701a45a019cfaae57a7c09d3/raw/52d79590c7c556a701d3a9bbb0dbfe5928335a60/crash.txt
P.S.: Consider adding "Expected result" and "Actual result" fields to the issue forms.
Minecraft version
1.17.1
Fabric API version
0.37.0
Mod version
2.12.2
Relevant log output