mojira.dev
MC-306190

Game closes when upgrading world fails

The bug

When attempting to upgrade and backup a world fails, a toast briefly appears and then the game closes. This does not appear to be a crash, but an error is logged.

How to reproduce

  1. Take a world from 1.21.11

  2. Add an file to the world directory that’s not owned by your user (e.g. sudo touch test)

  3. Try to upgrade and open the world in-game

Expected results

Graceful error message that lets you go back, like the one that appears when your world has symlinks.

Observed result

The game instantly closes and logs the following error:

[11:33:19] [Worker-Main-10] [ERROR] net.minecraft.util.filefix.virtualfilesystem.exception.CowFSCreationException: Cannot build copy-on-write file system, missing write access for file: /home/.../minecraft/snapshots/saves/New World (39)/test
        at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem$1.checkAttributes(CopyOnWriteFileSystem.java:101)
        at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem$1.visitFile(CopyOnWriteFileSystem.java:74)
        at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem$1.visitFile(CopyOnWriteFileSystem.java:71)
        at java.base/java.nio.file.Files.walkFileTree(Files.java:2543)
        at java.base/java.nio.file.Files.walkFileTree(Files.java:2609)
        at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem.buildFileTreeFrom(CopyOnWriteFileSystem.java:71)
        at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem.<init>(CopyOnWriteFileSystem.java:54)
        at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem.create(CopyOnWriteFileSystem.java:62)
        at net.minecraft.util.filefix.FileFixerUpper.fix(FileFixerUpper.java:73)
        at net.minecraft.util.filefix.FileFixerUpper.fix(FileFixerUpper.java:64)
        at net.minecraft.client.gui.screens.worldselection.WorldOpenFlows.lambda$upgradeAndOpenWorld$0(WorldOpenFlows.java:353)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.compute(ForkJoinTask.java:1750)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.compute(ForkJoinTask.java:1742)
        at java.base/java.util.concurrent.ForkJoinTask$InterruptibleTask.exec(ForkJoinTask.java:1659)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)

Comments 0

No comments.

tryashtar

(Unassigned)

Confirmed

(Unassigned)

26.1 Snapshot 6

Retrieved