DVDishka / Backuper

Minecraft backup plugin for Paper/Folia servers with FTP/SFTP support
MIT License
15 stars 2 forks source link

[BUG] backup fails #16

Closed x0rtrunks closed 5 months ago

x0rtrunks commented 5 months ago

Specify your operating system, minecraft server core and minecraft version ITGZ minecraft docker runing paper on linux mint.

Enter your config

DO NOT CHANGE

configVersion: 6.0 lastBackup: 1713423629 lastChange: 1713732890

(true/false) Automatic backup once in a specified period

autoBackup: true

(Path) Full directory where backups will be stored

backupsFolder: Backups

(Path list) (An example of how to set a list is below) Full directory paths to backup (Worlds will be backed up automatically, so you do not need to specify world folders there) (For example you can specify "plugins", "config")

addDirectoryToBackup:

- path1

- path2

- ...

addDirectoryToBackup: []

(Path list) (An example of how to set a list is below) Full directory paths to exclude from backup. If you want to backup everything from the folder1 except some folder1/file1 you can specify folder1 in addDirectoryToBackup and folder1/file1 in excludeDirectoryFromBackup. (The backupsFolder directory will be excluded automatically to prevent the loop)

excludeDirectoryFromBackup:

- path1

- path2

- ...

excludeDirectoryFromBackup: []

(STOP, RESTART, NOTHING) What to do after an automatic backup

afterBackup: RESTART

(0 - 23). Automatic backups will be made at this time every day. (backupPeriod will be automatically set to 24 hours). -1 to disable backup time fixation

backupTime: 7

(MINUTES > 0 or -1) Backup period. To change this value you need to set backupTime to -1 and autoBackup to true

backupPeriod: 1440

(true/false) The backup will only occur if the world has been changed since the last backup. If the world has not been changed, this backup cycle will be skipped

skipDuplicateBackup: true

(>= 0) Max backups in backups folder, 0 to make it unlimited

maxBackupsNumber: 14

(MB >= 0) Max backups folder weight, 0 to make it unlimited

maxBackupsWeight: 0

(true/false) Should backups be packaged in a zip archive

zipArchive: true

(SECONDS < backupPeriod * 60 or -1) A notification about the server restart will be sent to all players on the server {alertTimeBeforeRestart} seconds before the restart. -1 to disable notifications

alertTimeBeforeRestart: 60

(true/false) Notifications will be sent only if the server will be restarted or stopped after the backup

alertOnlyServerRestart: true

(true/false) Better logging (Some statistic and other information for debugging, you probably don't need it)

betterLogging: false

Backuper marks all world folders as Read Only to prevent folder changing that may cause backup crash. To disable this feature set notSetReadOnly = true

notSetReadOnly: false

Describe the bug

The backup fails with this error message in the logs

inecraft | [06:59:00] [Server thread/INFO]: Server will be backed up and restarted in 60 second(s) minecraft | [07:00:00] [Server thread/INFO]: Backup process has been started minecraft | [07:01:05] [Folia Async Scheduler Thread #1/WARN]: The Backup process has been finished with an exception! minecraft | [07:01:05] [Folia Async Scheduler Thread #1/WARN]: BackupProcess: Backups/22.04.2024 07:00:00 in progress.zip minecraft | [java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source), java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source), java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source), java.base/sun.nio.fs.UnixFileSystem.copyFile(Unknown Source), java.base/sun.nio.fs.UnixFileSystem.copy(Unknown Source), java.base/sun.nio.fs.UnixFileSystemProvider.copy(Unknown Source), java.base/java.nio.file.Files.copy(Unknown Source), Backuper-2.0.0.jar//ru.dvdishka.backuper.handlers.commands.backup.BackupProcess.run(BackupProcess.java:163), Backuper-2.0.0.jar//ru.dvdishka.backuper.backend.common.Scheduler.lambda$runAsync$3(Scheduler.java:41), io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217), java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source), java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source), java.base/java.lang.Thread.run(Unknown Source)]

A zip file is created in the backups folder called 22.04.2024 07:00:00 in progress.zip

Describe the way to reproduce the bug I had previously been running the docker on my synology nas and the backups were working fine, but when I migrated to a faster dedicated PC running linux mint I started getting these errors. I upgraded to 2.0 but same thing.

I assume it's a permissions issue, but I don't know what permission the plugin would be expecting.

DVDishka commented 5 months ago

Do I understand correctly that between the time when everything was fine and everything crashed you only changed the server itself, but the backuper version didn't change?

DVDishka commented 5 months ago

Most likely the problem is related to permissions. You can try setting 777 permissions on Backups and plugins/Backuper/Backups folders

DVDishka commented 5 months ago

Also you can set "backupsFolder: plugins/Backuper/Backups" in config. I think it can solve your problem

DVDishka commented 5 months ago

Keep me posted

x0rtrunks commented 5 months ago

Do I understand correctly that between the time when everything was fine and everything crashed you only changed the server itself, but the backuper version didn't change?

Correct. I only updated to version 2 after I switched the docker host from synology nas to a dedicated Linux Mint machine.

x0rtrunks commented 5 months ago

Most likely the problem is related to permissions. You can try setting 777 permissions on Backups and plugins/Backuper/Backups folders

I did a recursive 777 on the Backuper folder. Still same crash on backup completion.

x0rtrunks commented 5 months ago

Also you can set "backupsFolder: plugins/Backuper/Backups" in config. I think it can solve your problem

It looks like this did work though. No crash. Backup completed and the in progress zip was renamed properly.

Thanks.