EngineHub / WorldEdit

🗺️ Minecraft map editor and mod
https://enginehub.org/worldedit/
Other
3.09k stars 837 forks source link

Snapshots are not detected in uncompressed directories #2096

Closed drakon64 closed 2 years ago

drakon64 commented 2 years ago

WorldEdit Version

7.2.10

Platform Version

git-Pufferfish-67 (MC: 1.18.2)

Confirmations

Bug Description

/snap list doesn't find any snapshots when snapshots.directory contains uncompressed directory snapshots.

I have tested where snapshots.directory is a BorgFS mount, when it is a standard directory which contains a mount to a BorgFS archive, and when it is a normal XFS filesystem.

[opc@minecraft ~]$ sudo -u minecraft ls /opt/minecraft/snapshot/
2022-05-07-18-00-03  2022-05-08-07-00-03
2022-05-07-19-00-03  2022-05-08-08-00-03
2022-05-07-20-00-03  2022-05-08-09-00-03
2022-05-07-21-00-03  2022-05-08-10-00-03
2022-05-07-22-00-03  2022-05-08-11-00-03
2022-05-07-23-00-01  2022-05-08-12-00-02
2022-05-08-01-00-01  2022-05-08-13-00-03
2022-05-08-02-00-03  2022-05-08-14-00-03
2022-05-08-03-00-03  2022-05-08-15-00-03
2022-05-08-04-00-03  2022-05-08-16-00-03
2022-05-08-05-00-03  2022-05-08-17-00-00
2022-05-08-06-00-03  2022-05-08-18-00-03
[opc@minecraft ~]$ sudo -u minecraft ls -hl /opt/minecraft/snapshot/2022-05-08-19-00-03
total 55M
-rw-r--r--. 1 minecraft minecraft    2 May  8 11:59 banned-ips.json
-rw-r--r--. 1 minecraft minecraft    2 May  8 11:59 banned-players.json
drwxr-xr-x. 1 minecraft minecraft    0 May  8 19:04 bluemap
-rw-r--r--. 1 minecraft minecraft 1.3K May  8 11:59 bukkit.yml
-rw-r--r--. 1 minecraft minecraft  597 May  8 11:59 commands.yml
-rw-r--r--. 1 minecraft minecraft    9 Mar 29 18:59 eula.txt
-rw-r--r--. 1 minecraft minecraft    0 Mar 29 19:01 help.yml
drwxr-xr-x. 1 minecraft minecraft    0 May  8 11:58 logs
-rw-r--r--. 1 minecraft minecraft  137 May  8 11:59 ops.json
-rw-r--r--. 1 minecraft minecraft  11K May  8 11:59 paper.yml
-rw-r--r--. 1 minecraft minecraft    0 Mar 29 19:01 permissions.yml
drwxr-xr-x. 1 minecraft minecraft    0 May  8 11:57 plugins
-rw-r--r--. 1 minecraft minecraft 1.2K May  8 11:59 pufferfish.yml
-rwxr-xr-x. 1 minecraft minecraft  19M Apr 29 21:57 server
-rw-r--r--. 1 minecraft minecraft 7.1K May  8 11:58 server-icon.png
-rw-r--r--. 1 minecraft minecraft  36M May  8 09:50 server.jar
-rw-r--r--. 1 minecraft minecraft 1.3K May  8 11:59 server.properties
-rw-r--r--. 1 minecraft minecraft 4.8K May  8 11:59 spigot.yml
-rw-r--r--. 1 minecraft minecraft  541 May  8 17:39 usercache.json
-rw-r--r--. 1 minecraft minecraft   97 May  8 09:54 version_history.json
-rw-r--r--. 1 minecraft minecraft 1.5K Mar 29 19:01 wepif.yml
-rw-r--r--. 1 minecraft minecraft  433 May  1 19:13 whitelist.json
drwxr-xr-x. 1 minecraft minecraft    0 May  8 19:00 world
drwxr-xr-x. 1 minecraft minecraft    0 May  8 19:00 world_nether
drwxr-xr-x. 1 minecraft minecraft    0 May  8 19:00 world_the_end
[opc@minecraft ~]$ sudo -u minecraft ls -hl /opt/minecraft/snapshot/2022-05-08-19-00-03/world/
total 4.0K
drwxr-xr-x. 1 minecraft minecraft    0 May  3 23:56 advancements
drwxr-xr-x. 1 minecraft minecraft    0 Apr 15 17:16 data
drwxr-xr-x. 1 minecraft minecraft    0 Mar 29 19:01 datapacks
drwxr-xr-x. 1 minecraft minecraft    0 Apr 16 14:09 entities
-rw-r--r--. 1 minecraft minecraft 1.3K May  8 19:00 level.dat
-rw-r--r--. 1 minecraft minecraft 1.3K May  8 18:55 level.dat_old
drwxr-xr-x. 1 minecraft minecraft    0 May  8 19:00 playerdata
drwxr-xr-x. 1 minecraft minecraft    0 May  3 21:15 poi
drwxr-xr-x. 1 minecraft minecraft    0 Apr 15 12:26 region
-rw-r--r--. 1 minecraft minecraft    3 May  8 11:59 session.lock
drwxr-xr-x. 1 minecraft minecraft    0 May  3 23:56 stats
-rw-r--r--. 1 minecraft minecraft   16 Mar 29 19:01 uid.dat
[opc@minecraft ~]$ sudo -u minecraft ls -hl /opt/minecraft/snapshot/2022-05-08-19-00-03/world/region
total 570M
-rw-r--r--. 1 minecraft minecraft  12M May  8 19:00 r.0.0.mca
-rw-r--r--. 1 minecraft minecraft  12M May  8 19:00 r.0.-1.mca
-rw-r--r--. 1 minecraft minecraft  12M May  8 17:37 r.0.1.mca
-rw-r--r--. 1 minecraft minecraft  12M May  8 19:00 r.0.-2.mca
-rw-r--r--. 1 minecraft minecraft  11M May  7 20:08 r.0.2.mca
-rw-r--r--. 1 minecraft minecraft  12M May  7 23:33 r.0.-3.mca
-rw-r--r--. 1 minecraft minecraft 8.4M Apr 10 16:28 r.0.3.mca
-rw-r--r--. 1 minecraft minecraft 3.8M Apr 25 19:09 r.0.-4.mca
-rw-r--r--. 1 minecraft minecraft 5.7M Apr  9 06:00 r.0.4.mca
-rw-r--r--. 1 minecraft minecraft 136K Apr 15 12:46 r.0.-5.mca
-rw-r--r--. 1 minecraft minecraft  11M May  8 19:00 r.-1.0.mca
-rw-r--r--. 1 minecraft minecraft 9.9M May  8 15:47 r.1.0.mca
-rw-r--r--. 1 minecraft minecraft  11M May  8 19:00 r.-1.-1.mca
-rw-r--r--. 1 minecraft minecraft  11M May  8 17:33 r.-1.1.mca
-rw-r--r--. 1 minecraft minecraft  13M May  8 15:47 r.1.-1.mca
-rw-r--r--. 1 minecraft minecraft  11M May  2 22:49 r.1.1.mca
-rw-r--r--. 1 minecraft minecraft  12M May  8 19:00 r.-1.-2.mca
-rw-r--r--. 1 minecraft minecraft  11M May  7 20:08 r.-1.2.mca
-rw-r--r--. 1 minecraft minecraft  13M May  8 15:47 r.1.-2.mca
-rw-r--r--. 1 minecraft minecraft 9.5M Apr 20 22:07 r.1.2.mca
-rw-r--r--. 1 minecraft minecraft  12M May  7 23:33 r.-1.-3.mca
-rw-r--r--. 1 minecraft minecraft 9.1M May  7 20:07 r.-1.3.mca
-rw-r--r--. 1 minecraft minecraft  11M Apr 16 06:00 r.1.-3.mca
-rw-r--r--. 1 minecraft minecraft 9.0M Apr 11 06:00 r.1.3.mca
-rw-r--r--. 1 minecraft minecraft 8.7M May  4 01:02 r.-1.-4.mca
-rw-r--r--. 1 minecraft minecraft 3.6M Apr  9 06:00 r.-1.4.mca
-rw-r--r--. 1 minecraft minecraft 1.7M Apr  9 18:21 r.1.-4.mca
-rw-r--r--. 1 minecraft minecraft 5.8M Apr  9 06:00 r.1.4.mca
-rw-r--r--. 1 minecraft minecraft 2.1M Apr 15 12:46 r.-1.-5.mca
-rw-r--r--. 1 minecraft minecraft  12M May  8 19:00 r.-2.0.mca
-rw-r--r--. 1 minecraft minecraft  11M May  2 22:47 r.2.0.mca
-rw-r--r--. 1 minecraft minecraft  12M May  8 19:00 r.-2.-1.mca
-rw-r--r--. 1 minecraft minecraft  11M May  8 17:33 r.-2.1.mca
-rw-r--r--. 1 minecraft minecraft  11M May  2 22:47 r.2.-1.mca
-rw-r--r--. 1 minecraft minecraft 8.8M May  2 22:47 r.2.1.mca
-rw-r--r--. 1 minecraft minecraft  13M May  8 19:00 r.-2.-2.mca
-rw-r--r--. 1 minecraft minecraft  12M May  7 20:08 r.-2.2.mca
-rw-r--r--. 1 minecraft minecraft  11M May  2 22:47 r.2.-2.mca
-rw-r--r--. 1 minecraft minecraft 8.5M Apr 10 13:14 r.2.2.mca
-rw-r--r--. 1 minecraft minecraft 8.5M May  7 23:33 r.-2.-3.mca
-rw-r--r--. 1 minecraft minecraft 3.2M May  7 20:14 r.-2.3.mca
-rw-r--r--. 1 minecraft minecraft  11M Apr  9 18:21 r.2.-3.mca
-rw-r--r--. 1 minecraft minecraft 6.8M Apr 11 06:00 r.2.3.mca
-rw-r--r--. 1 minecraft minecraft 9.0M May  4 01:02 r.-2.-4.mca
-rw-r--r--. 1 minecraft minecraft 1.6M Apr  9 18:21 r.2.-4.mca
-rw-r--r--. 1 minecraft minecraft 2.0M Apr  9 06:00 r.2.4.mca
-rw-r--r--. 1 minecraft minecraft 2.5M Apr 15 12:46 r.-2.-5.mca
-rw-r--r--. 1 minecraft minecraft  12M May  7 23:34 r.-3.0.mca
-rw-r--r--. 1 minecraft minecraft 7.4M Apr 15 12:35 r.3.0.mca
-rw-r--r--. 1 minecraft minecraft  12M May  7 23:33 r.-3.-1.mca
-rw-r--r--. 1 minecraft minecraft  12M May  7 20:08 r.-3.1.mca
-rw-r--r--. 1 minecraft minecraft 8.0M Apr 15 12:35 r.3.-1.mca
-rw-r--r--. 1 minecraft minecraft 6.7M Apr 11 06:00 r.3.1.mca
-rw-r--r--. 1 minecraft minecraft  10M May  7 23:33 r.-3.-2.mca
-rw-r--r--. 1 minecraft minecraft  13M May  7 20:08 r.-3.2.mca
-rw-r--r--. 1 minecraft minecraft 6.1M Apr 15 12:46 r.3.-2.mca
-rw-r--r--. 1 minecraft minecraft 6.4M Apr 10 13:14 r.3.2.mca
-rw-r--r--. 1 minecraft minecraft 8.7M May  7 15:25 r.-3.-3.mca
-rw-r--r--. 1 minecraft minecraft 2.1M May  7 20:07 r.-3.3.mca
-rw-r--r--. 1 minecraft minecraft 2.2M Apr  9 18:21 r.3.-3.mca
-rw-r--r--. 1 minecraft minecraft 3.5M Apr 11 06:00 r.3.3.mca
-rw-r--r--. 1 minecraft minecraft 9.3M May  4 01:02 r.-3.-4.mca
-rw-r--r--. 1 minecraft minecraft 572K Apr  9 18:21 r.3.-4.mca
-rw-r--r--. 1 minecraft minecraft 2.5M Apr  4 19:58 r.-3.-5.mca
-rw-r--r--. 1 minecraft minecraft 7.1M Apr 17 06:00 r.-4.0.mca
-rw-r--r--. 1 minecraft minecraft 136K Apr  9 06:00 r.4.0.mca
-rw-r--r--. 1 minecraft minecraft 7.6M Apr 17 06:00 r.-4.-1.mca
-rw-r--r--. 1 minecraft minecraft 2.1M Apr 17 06:00 r.-4.1.mca
-rw-r--r--. 1 minecraft minecraft 136K Apr  9 06:00 r.4.-1.mca
-rw-r--r--. 1 minecraft minecraft  48K Apr  9 06:00 r.4.1.mca
-rw-r--r--. 1 minecraft minecraft 8.4M Apr 17 06:00 r.-4.-2.mca
-rw-r--r--. 1 minecraft minecraft 1.8M Apr  9 18:21 r.-4.2.mca
-rw-r--r--. 1 minecraft minecraft 104K Apr  9 06:00 r.4.-2.mca
-rw-r--r--. 1 minecraft minecraft 8.4M Apr  9 13:44 r.-4.-3.mca
-rw-r--r--. 1 minecraft minecraft 580K Apr  9 18:21 r.-4.3.mca
-rw-r--r--. 1 minecraft minecraft 8.2M Apr  9 13:46 r.-4.-4.mca
-rw-r--r--. 1 minecraft minecraft 1.8M Apr  4 15:28 r.-4.-5.mca
-rw-r--r--. 1 minecraft minecraft 128K Apr  4 15:28 r.-5.-2.mca
-rw-r--r--. 1 minecraft minecraft 136K Apr  4 15:28 r.-5.-3.mca
-rw-r--r--. 1 minecraft minecraft 124K Apr  4 15:28 r.-5.-4.mca
-rw-r--r--. 1 minecraft minecraft  12K Apr  9 15:42 r.-5.-5.mca

Expected Behavior

/snap list shows a list of snapshots

Reproduction Steps

  1. Create a Borg archive containing the server directory borg create /opt/minecraft/backup::2022-05-08-19-00-03 /opt/minecraft/server
  2. Mount the Borg repository as a filesystem borg mount /opt/minecraft/backup /opt/minecraft/snapshot
  3. Use the mount point as the WorldEdit snapshot path
  4. Run snap list

Anything Else?

No response

wizjany commented 2 years ago

does it work if you mount on a "normal" fs? i'd be quicker to expect that it's a format (i.e. layout of your snapshot) issue than a fs issue. though if it is an fs issue it's more likely a java issue since we just load that stuff with standard java io (unless it's inside a zip, which it's not here)

drakon64 commented 2 years ago

It's worked when I've recreated the same structure as a Zip, will try with a 'normal' FS

drakon64 commented 2 years ago

Doesn't work with XFS either. The structure was based on https://worldedit.enginehub.org/en/latest/usage/snapshots/.

As before, this worked with a Zip backup following the same structure but not straight directories. Could that be the issue?

wizjany commented 2 years ago

yes, there are known inconsistencies between snapshot detection in the zipped and "normal" chunk stores. you may want to try turning on experimental snapshots in config.

drakon64 commented 2 years ago

Setting snapshots.experimental to true does seem to fix it. Guess this should be closed if it's a known issue.