mojira.dev
MC-206376

Custom worldgen can freeze world generation

Ticked should be closed as invalid

Found out that I didn't update something or changed something accidentally. The datapack I've linked here was actually a release build and not the development build I used. I've done this that way, because something like that was happening in 1.16.3, but someone told me that it was fixed, so the issue wouldn't occur. It was some kind of typo / mistake that console didn't notice until entering the biome, what resulted in game freeze.

 

Custom worldgen using custom biomes can freeze world generation until exiting or task-killing (in case if the world won't leave "saving world" screen).

Issue occur when generating a lot of terrain in short time (can't tell if it won't occur when we'll generate a lot of terrain, but slowly)

Console error output is preceded by this warning:

Worker-Main-104 died
java.util.ConcurrentModificationException
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380)
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
	at aar.a(SourceFile:136)
	at aar$$Lambda$4593/280919331.run(Unknown Source)
	at aar.e(SourceFile:171)
	at aar.a(SourceFile:108)
	at aar$$Lambda$4591/777735811.run(Unknown Source)
	at aac.b(SourceFile:58)
	at aac$$Lambda$4552/1081520703.run(Unknown Source)
	at aoo.e(SourceFile:94)
	at aoo.a(SourceFile:137)
	at aoo.run(SourceFile:105)
	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Worker-Main-104 died
java.util.ConcurrentModificationException
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380)
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
	at aar.a(SourceFile:136)
	at aar$$Lambda$4593/280919331.run(Unknown Source)
	at aar.e(SourceFile:171)
	at aar.a(SourceFile:108)
	at aar$$Lambda$4591/777735811.run(Unknown Source)
	at aac.b(SourceFile:58)
	at aac$$Lambda$4552/1081520703.run(Unknown Source)
	at aoo.e(SourceFile:94)
	at aoo.a(SourceFile:137)
	at aoo.run(SourceFile:105)
	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

Console error output:

Caught exception in thread Thread[Worker-Main-56,5,main]
java.util.ConcurrentModificationException
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380)
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
	at aar.a(SourceFile:136)
	at aar$$Lambda$4654/415262608.run(Unknown Source)
	at aar.e(SourceFile:171)
	at aar.a(SourceFile:108)
	at aar$$Lambda$4657/1078543607.run(Unknown Source)
	at aac.b(SourceFile:58)
	at aac$$Lambda$4619/964136656.run(Unknown Source)
	at aoo.e(SourceFile:94)
	at aoo.a(SourceFile:137)
	at aoo.run(SourceFile:105)
	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caught exception in thread Thread[Worker-Main-56,5,main]
java.util.ConcurrentModificationException
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380)
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
	at aar.a(SourceFile:136)
	at aar$$Lambda$4654/415262608.run(Unknown Source)
	at aar.e(SourceFile:171)
	at aar.a(SourceFile:108)
	at aar$$Lambda$4657/1078543607.run(Unknown Source)
	at aac.b(SourceFile:58)
	at aac$$Lambda$4619/964136656.run(Unknown Source)
	at aoo.e(SourceFile:94)
	at aoo.a(SourceFile:137)
	at aoo.run(SourceFile:105)
	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

Issue with previously "frozen" chunks will resolve after reentering the world

Tested with this datapack https://www.planetminecraft.com/data-pack/vanilla-expansion-datapack/

Attachments

Comments 2

Please attach the data pack

Added the link. If it'll be necessary to separete biomes, I'll create a copy and attach it here.

user-39d6c

(Unassigned)

Unconfirmed

(Unassigned)

1.16.4, 20w46a, 20w48a

Retrieved