World border center can be set past 2,147,483,647 blocks, causing a crash upon attempting to respawn
Private due to information regarding a server crash that affects a release.
The bug
Setting the center of the world border to anywhere past 2,147,483,647 from the origin, then dying and attempting to respawn, causes a server crash (as described in MC-217427). This happens because the game always attempts to respawn the player within the world border. One may expect that the /worldborder center command would not allow the center to be set to a point that far from the origin.
A crash report is attached.
How to reproduce
- Create a new world (make sure commands are enabled!)
- Run the command /worldborder center 214748364777777 0
- Run the command /kill
- Press the "Respawn" button
Game either crashes, or doesn't do anything
When attempting to save the game regardless of the outcome of these steps, the game crashes.
Stack trace
Description: Exception in server tick loop
java.util.concurrent.CompletionException: z: Feature placement
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1155)
at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
at abr.b(SourceFile:58)
at ata.g(SourceFile:91)
at ata.a(SourceFile:146)
at ata.run(SourceFile:102)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1434)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:295)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: z: Feature placement
at abp.a(SourceFile:636)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at abp.a(SourceFile:618)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1146)
... 11 more
Caused by: java.lang.RuntimeException: We are asking a region for a chunk out of bound | -134217728 -134217728
at acj.a(SourceFile:138)
at byy.a(SourceFile:140)
at bzn.a(SourceFile:41)
at cou.a(SourceFile:258)
at cow.c(SourceFile:115)
at cow.a(SourceFile:249)
at abp.a(SourceFile:624)
... 14 more