MCMT

MCMT

95.3k Downloads

ChunkManager Fast Util Bug

jediminer543 opened this issue ยท 1 comments

commented

Only seen once, and that was in 1.16.3, but still apparently can occur

Trace:

[14Sep2020 11:30:56.816] [Server thread/FATAL] [net.minecraft.util.concurrent.ThreadTaskExecutor/]: Error executing task on Server
java.lang.NullPointerException: null
	at it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator.nextEntry(Int2ObjectOpenHashMap.java:668) ~[fastutil-8.2.1.jar:?]
	at it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$ValueIterator.next(Int2ObjectOpenHashMap.java:950) ~[fastutil-8.2.1.jar:?]
	at net.minecraft.world.server.ChunkManager.func_219183_a(ChunkManager.java:859) ~[?:?]
	at net.minecraft.world.server.ServerChunkProvider.func_217221_a(SourceFile:467) ~[?:?]
	at net.minecraft.network.play.ServerPlayNetHandler.func_147347_a(ServerPlayNetHandler.java:776) ~[?:?]
	at net.minecraft.network.play.client.CPlayerPacket.func_148833_a(SourceFile:122) ~[?:?]
	at net.minecraft.network.play.client.CPlayerPacket$PositionPacket.func_148833_a(SourceFile:56) ~[?:?]
	at net.minecraft.network.PacketThreadUtil.func_225383_a(SourceFile:21) ~[?:?]
	at net.minecraft.util.concurrent.TickDelayedTask.run(SourceFile:18) ~[?:?]
	at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213166_h(SourceFile:144) ~[?:?]
	at net.minecraft.util.concurrent.RecursiveEventLoop.func_213166_h(SourceFile:23) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:729) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:156) ~[?:?]
	at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213168_p(SourceFile:118) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213205_aW(MinecraftServer.java:712) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213168_p(MinecraftServer.java:706) ~[?:?]
	at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213161_c(SourceFile:127) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213202_o(MinecraftServer.java:692) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:641) ~[?:?]
	at net.minecraft.server.MinecraftServer.lambda$func_240784_a_$0(MinecraftServer.java:229) ~[?:?]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]

Notes:

  • Hard to repro
  • ChunkManager has other fastutil collections that may need replacing but are hard typed (i.e. their fast util collection is hyperspecific)
  • Field is field_219272_z
commented

Am closing this as 0.17.52 should just fix this as "Int2ObjectOpenHashMap" is being sync'd within FU (Fast Util) itself rather than needing a unique replacement

Goal is that this will fix other issues too

This also may not work in which case this issue will be reopened but hopefully it won't (And if it does it needs a stronger fix than just synchronising like making it a concurrent thing instead)