mojira.dev
MC-138125

Game tries to generate chunks and then crashes: Writing into PalettedContainer from multiple threads

Clarification note

This report is only for Java version 1.8.0_51 or higher. See MC-132073 for older Java versions.

1. I just flew and then some chunks failed to load
2. I tried to fly away and then some chunks shown in-game, but not in 'problematic' zone
3. I flew into 'problematic' zone again and chunks shown
4. Game somehow bugged and some chunks became invisible
5. Some invisible chunks reappeared(they blinked)
6. I flew into 'void' zone, where chunks still not generated/shown
7. Everything disappeared, i tried to fly back to zone, that was visible
8. Game crashed

I made some tests:
Java 11: 2 runs, 2 crashes
Java 8: 1 run, 0 crashes, but same buggy chunk loading/generating behavior

18w43c\: [^crash-2018-10-27_05.19.52-server.txt]

---- Minecraft Crash Report ----
// Everything's going to plan. No, really, that was supposed to happen.

Time: 10/27/18, 5:19 AM
Description: Writing into PalettedContainer from multiple threads

java.lang.IllegalStateException
	at boo.b(SourceFile:42)
	at boo.a(SourceFile:109)
	at boi.a(SourceFile:44)
	at bop.a(SourceFile:181)
	at bpt.d(SourceFile:121)
	at bnw.c(SourceFile:145)
	at boa.a(SourceFile:119)
	at boa.i(SourceFile:37)
	at boa.a(SourceFile:200)
	at ty.a(SourceFile:457)
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:479)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Server thread
Stacktrace:
	at boo.b(SourceFile:42)

-- Thread dumps --
Details:
	Thread dumps: Chunk Batcher 2: 
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at app//dab.d(SourceFile:170)
	at app//dac.run(SourceFile:41)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Snooper Timer: 
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.Object.wait(Object.java:328)
	at [email protected]/java.util.TimerThread.mainLoop(Timer.java:527)
	at [email protected]/java.util.TimerThread.run(Timer.java:506)
Chunk Batcher 7: 
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at app//dab.d(SourceFile:170)
	at app//dac.run(SourceFile:41)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Netty Local Client IO #0: 
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
	at app//io.netty.util.concurrent.SingleThreadEventExecutor.takeTask(SingleThreadEventExecutor.java:238)
	at app//io.netty.channel.DefaultEventLoop.run(DefaultEventLoop.java:52)
	at app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Chunk Batcher 5: 
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at app//dab.d(SourceFile:170)
	at app//dac.run(SourceFile:41)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Finalizer: 
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
	at [email protected]/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)
Netty Server IO #1: 
	at [email protected]/sun.nio.ch.EPoll.wait(Native Method)
	at [email protected]/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:120)
	at [email protected]/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
	at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
	at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:756)
	at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:411)
	at app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Server thread: 
	at app//boo.a(SourceFile:205)
	at app//bot.a(SourceFile:554)
	at app//bot.a(SourceFile:323)
	at app//ty.a(SourceFile:550)
	at app//ty.b(SourceFile:622)
	at app//ty.a(SourceFile:601)
	at app//tz.a(SourceFile:177)
	at app//net.minecraft.server.MinecraftServer.b(SourceFile:730)
	at app//net.minecraft.server.MinecraftServer.a(SourceFile:664)
	at app//djq.a(SourceFile:125)
	at app//net.minecraft.server.MinecraftServer.run(SourceFile:568)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Resource IO {0}: 
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Thread-1: 
	at [email protected]/java.lang.Thread.sleep(Native Method)
	at app//paulscode.sound.SimpleThread.snooze(SimpleThread.java:196)
	at app//paulscode.sound.CommandThread.run(CommandThread.java:133)
Light executor 0: 
	at app//bzp.b(SourceFile:158)
	at app//bzw.a(SourceFile:79)
	at app//bzp.b(SourceFile:197)
	at app//bzr.a(SourceFile:117)
	at app//bzu.a(SourceFile:54)
	at app//ud.b(SourceFile:105)
	at app//ud$$Lambda$2086/0x00000008007ea840.run(Unknown Source)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Chunk Batcher 3: 
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at app//dab.d(SourceFile:170)
	at app//dac.run(SourceFile:41)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Timer hack thread: 
	at [email protected]/java.lang.Thread.sleep(Native Method)
	at app//cjk$1.run(SourceFile:608)
Java2D Disposer: 
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
	at [email protected]/sun.java2d.Disposer.run(Disposer.java:144)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Reference Handler: 
	at [email protected]/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
	at [email protected]/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
	at [email protected]/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)
ObjectCleanerThread: 
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at app//io.netty.util.internal.ObjectCleaner$1.run(ObjectCleaner.java:54)
	at app//io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Thread-2: 
	at [email protected]/java.lang.Thread.sleep(Native Method)
	at app//paulscode.sound.SimpleThread.snooze(SimpleThread.java:196)
	at app//paulscode.sound.StreamThread.run(StreamThread.java:98)
Chunk Batcher 1: 
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at app//dab.d(SourceFile:170)
	at app//dac.run(SourceFile:41)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Narrator: 
	at [email protected]/java.lang.Thread.sleep(Native Method)
	at app//com.mojang.text2speech.NarratorLinux$NarratorThread.run(NarratorLinux.java:56)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Chunk Batcher 4: 
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at app//dab.d(SourceFile:170)
	at app//dac.run(SourceFile:41)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
ForkJoinPool.commonPool-worker-11: 
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628)
	at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
Signal Dispatcher: 
	at 
WorldGen-Worker-1: 
	at java.base/java.lang.Thread.getStackTrace(Thread.java:1606)
	at boo.a(SourceFile:40)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1603)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at boo.b(SourceFile:41)
	at boo.a(SourceFile:109)
	at boi.a(SourceFile:44)
	at bop.a(SourceFile:181)
	at bpt.d(SourceFile:121)
	at bnw.c(SourceFile:145)
	at boa.a(SourceFile:119)
	at boa.i(SourceFile:37)
	at boa.a(SourceFile:200)
	at ty.a(SourceFile:457)
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:479)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
Netty Server IO #0: 
	at [email protected]/sun.nio.ch.EPoll.wait(Native Method)
	at [email protected]/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:120)
	at [email protected]/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
	at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
	at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:756)
	at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:411)
	at app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Snooper Timer: 
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.Object.wait(Object.java:328)
	at [email protected]/java.util.TimerThread.mainLoop(Timer.java:527)
	at [email protected]/java.util.TimerThread.run(Timer.java:506)
Client thread: 
	at app//it.unimi.dsi.fastutil.longs.Long2ObjectFunctions$SynchronizedFunction.get(Long2ObjectFunctions.java:241)
	at app//cuv.b(SourceFile:64)
	at app//cuv.a(SourceFile:29)
	at app//aza.a(SourceFile:260)
	at app//aza.c(SourceFile:255)
	at app//daf.a(SourceFile:81)
	at app//daf.b(SourceFile:93)
	at app//cxu.a(SourceFile:914)
	at app//cxq.b(SourceFile:944)
	at app//cxq.a(SourceFile:878)
	at app//cxq.a(SourceFile:752)
	at app//cjk.c(SourceFile:817)
	at app//cjk.a(SourceFile:380)
	at app//net.minecraft.client.main.Main.main(SourceFile:144)
Chunk Batcher 0: 
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at app//dab.d(SourceFile:170)
	at app//dac.run(SourceFile:41)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Common-Cleaner: 
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
	at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)
Chunk Batcher 6: 
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at app//dab.d(SourceFile:170)
	at app//dac.run(SourceFile:41)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
Stacktrace:
	at boo.b(SourceFile:42)
	at boo.a(SourceFile:109)
	at boi.a(SourceFile:44)
	at bop.a(SourceFile:181)
	at bpt.d(SourceFile:121)
	at bnw.c(SourceFile:145)
	at boa.a(SourceFile:119)
	at boa.i(SourceFile:37)
	at boa.a(SourceFile:200)

-- Chunk to be generated --
Details:
	Location: 41,-63
	Position hash: -270582939607
	Generator: bpt@14988aad
Stacktrace:
	at ty.a(SourceFile:457)
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:479)

-- Affected level --
Details:
	Level name: Qiba
	All players: 1 total; [ub['Xakep_SDK'/298, l='Qiba', x=-326.26, y=112.89, z=-555.76]]
	Chunk stats: ServerChunkCache: 8339
	Level seed: 1112656407260418052
	Level generator: ID 00 - default, ver 1. Features enabled: true
	Level generator options: {}
	Level spawn location: World: (240,70,48), Chunk: (at 0,4,0 in 15,3; contains blocks 240,0,48 to 255,255,63), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
	Level time: 19275 game time, 30325 day time
	Level dimension: 0
	Level storage version: 0x04ABD - Anvil
	Level weather: Rain time: 105279 (now: false), thunder time: 13975 (now: false)
	Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
Stacktrace:
	at net.minecraft.server.MinecraftServer.b(SourceFile:733)
	at net.minecraft.server.MinecraftServer.a(SourceFile:664)
	at djq.a(SourceFile:125)
	at net.minecraft.server.MinecraftServer.run(SourceFile:568)
	at java.base/java.lang.Thread.run(Thread.java:834)

-- System Details --
Details:
	Minecraft Version: 18w43c
	Operating System: Linux (amd64) version 4.18.16-arch1-1-ARCH
	Java Version: 11.0.1, Oracle Corporation
	Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 701881928 bytes (669 MB) / 4294967296 bytes (4096 MB) up to 8589934592 bytes (8192 MB)
	JVM Flags: 2 total; -Xmx8G -Xms4G
	Profiler Position: N/A (disabled)
	Player Count: 1 / 8; [ub['Xakep_SDK'/298, l='Qiba', x=-326.26, y=112.89, z=-555.76]]
	Data Packs: vanilla
	Type: Integrated Server (map_client.txt)
	Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.

Linked issues

Attachments

Comments

migrated

Confirmed for 18w46a and 18w47a 

[media]
tomudding

Can confirm for 19w06a (server).

Adrian Östergård

Is this an issue in 19w13a?

migrated

Fry

Confirmed

(Unassigned)

Minecraft 18w43c, Minecraft 18w45a, Minecraft 18w46a, Minecraft 18w47a, Minecraft 19w06a, Minecraft 19w08b

Retrieved