mojira.dev
MC-306190

The game closes when upgrading a 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 a 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 1

It also happened for one of my worlds from 26.1 Snapshot 5

tryashtar

(Unassigned)

Confirmed

Platform EC

Very Important

Datafixer, Save Data

26.1 Snapshot 6, 26.1 Snapshot 7

26.1 Snapshot 11

Retrieved