nextcloud / all-in-one

📦 The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.
https://hub.docker.com/r/nextcloud/all-in-one
GNU Affero General Public License v3.0
5.4k stars 622 forks source link

Borg prune error #5240

Closed emanuelepns closed 1 month ago

emanuelepns commented 1 month ago

Steps to reproduce

  1. Start a backup from AIO interface

Expected behavior

Finish the backup without errors

Actual behavior

Borg fails to prune archieves because of a " in the parameters (?), so reports the failed backup

Other information

Host OS

Ubuntu 22.04.4 LTS

Output of sudo docker info

Client: Docker Engine - Community
 Version:    27.1.2
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.16.2
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.29.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 16
  Running: 5
  Paused: 0
  Stopped: 11
 Images: 16
 Server Version: 27.1.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: runc io.containerd.runc.v2
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8fc6bcff51318944179630522a095cc9dbf9f353
 runc version: v1.1.13-0-g58aa920
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.5.0-1027-oracle
 Operating System: Ubuntu 22.04.4 LTS
 OSType: linux
 Architecture: aarch64
 CPUs: 2
 Total Memory: 11.65GiB
 Name: srvr-treseicinque
 ID: cf7e3df7-631c-4bd7-9357-a3d51d715c32
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Docker run command or docker-compose file that you used

docker-compose:

services:

  nextcloud-aio-mastercontainer:
    image: nextcloud/all-in-one:latest
    init: true
    restart: always
    container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed as otherwise AIO will not work correctly
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed as otherwise the built-in backup solution will not work
      - /var/run/docker.sock:/var/run/docker.sock:ro # May be changed on macOS, Windows or docker rootless. See the applicable documentation. If adjusting, don't forget to also set 'WATCHTOWER_DOCKER_SOCKET_PATH'!
    ports:
      #- 80:80 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
      - 8080:8080
      #- 8443:8443 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
    environment: # Is needed when using any of the options below
      # - AIO_DISABLE_BACKUP_SECTION=false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section
      - APACHE_PORT=11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
      - APACHE_IP_BINDING=127.0.0.1 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
      # - BORG_RETENTION_POLICY=--keep-within=7d --keep-weekly=4 --keep-monthly=6 # Allows to adjust borgs retention policy. See https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy
      # - COLLABORA_SECCOMP_DISABLED=false # Setting this to true allows to disable Collabora's Seccomp feature. See https://github.com/nextcloud/all-in-one#how-to-disable-collaboras-seccomp-feature
      # - NEXTCLOUD_DATADIR=/mnt/ncdata # Allows to set the host directory for Nextcloud's datadir. ⚠️⚠️⚠️ Warning: do not set or adjust this value after the initial Nextcloud installation is done! See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir
      - NEXTCLOUD_MOUNT=/mnt/nc-ext # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host
      # - NEXTCLOUD_UPLOAD_LIMIT=10G # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud
      # - NEXTCLOUD_MAX_TIME=3600 # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud
      # - NEXTCLOUD_MEMORY_LIMIT=512M # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud
      # - NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts # CA certificates in this directory will be trusted by the OS of the nexcloud container (Useful e.g. for LDAPS) See See https://github.com/nextcloud/all-in-one#how-to-trust-user-defined-certification-authorities-ca
      # - NEXTCLOUD_STARTUP_APPS=deck twofactor_totp tasks calendar contacts notes # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. See https://github.com/nextcloud/all-in-one#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup
      # - NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-os-packages-permanently-to-the-nextcloud-container
      - NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=imagick gcompat # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container
      # - NEXTCLOUD_ENABLE_DRI_DEVICE=true # This allows to enable the /dev/dri device in the Nextcloud container. ⚠️⚠️⚠️ Warning: this only works if the '/dev/dri' device is present on the host! If it should not exist on your host, don't set this to true as otherwise the Nextcloud container will fail to start! See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
      # - TALK_PORT=3478 # This allows to adjust the port that the talk container is using. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port
      # - WATCHTOWER_DOCKER_SOCKET_PATH=/var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. For macos it needs to be '/var/run/docker.sock'
      - BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=2"
      - SKIP_DOMAIN_VALIDATION=true
    # networks: # Is needed when you want to create the nextcloud-aio network with ipv6-support using this file, see the network config at the bottom of the file
      # - nextcloud-aio # Is needed when you want to create the nextcloud-aio network with ipv6-support using this file, see the network config at the bottom of the file

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer # This line is not allowed to be changed as otherwise the built-in backup solution will not work

Other valuable info

Today I found the server stuck on an automatic backup (but the other containers were up), so I force stopped it and found that the latest successful backup was from mid august. When I start a manual backup this happens. I tried creating a new repository removing this one and the borg config file, and also removing retention policy from the compose but without success

LOG:

2024-09-10T19:28:41.737124153Z Performing backup...
2024-09-10T19:28:41.737311994Z Starting the backup...
2024-09-10T19:28:42.427667487Z Creating archive at "/mnt/borgbackup/borg::20240910_192841-nextcloud-aio"
2024-09-10T19:28:58.768326406Z ------------------------------------------------------------------------------
2024-09-10T19:28:58.768390166Z Repository: /mnt/borgbackup/borg
2024-09-10T19:28:58.768394366Z Archive name: 20240910_192841-nextcloud-aio
2024-09-10T19:28:58.768463887Z Archive fingerprint: f02c54d8e331e0104538ca78840263e848fdbb04de82a324dc8abcc388123584
2024-09-10T19:28:58.768484727Z Time (start): Tue, 2024-09-10 19:28:42
2024-09-10T19:28:58.768488367Z Time (end):   Tue, 2024-09-10 19:28:55
2024-09-10T19:28:58.768576327Z Duration: 13.42 seconds
2024-09-10T19:28:58.768637447Z Number of files: 49373
2024-09-10T19:28:58.768643847Z Utilization of max. archive size: 0%
2024-09-10T19:28:58.768647047Z ------------------------------------------------------------------------------
2024-09-10T19:28:58.768649767Z                        Original size      Compressed size    Deduplicated size
2024-09-10T19:28:58.768689648Z This archive:               10.58 GB              8.89 GB             70.77 kB
2024-09-10T19:28:58.768695808Z All archives:              166.28 GB            135.78 GB             10.18 GB
2024-09-10T19:28:58.768699008Z 
2024-09-10T19:28:58.768701448Z                        Unique chunks         Total chunks
2024-09-10T19:28:58.768704488Z Chunk index:                   96977              1009354
2024-09-10T19:28:58.768741928Z ------------------------------------------------------------------------------
2024-09-10T19:28:58.828277937Z BORG_PRUNE_OPTS are "--keep-within=7d --keep-weekly=4 --keep-monthly=2"
2024-09-10T19:28:58.828315297Z Pruning the archives...
2024-09-10T19:28:59.206692505Z usage: borg prune [-h] [--critical] [--error] [--warning] [--info] [--debug]
2024-09-10T19:28:59.206732625Z                   [--debug-topic TOPIC] [-p] [--iec] [--log-json]
2024-09-10T19:28:59.206736025Z                   [--lock-wait SECONDS] [--bypass-lock] [--show-version]
2024-09-10T19:28:59.206738705Z                   [--show-rc] [--umask M] [--remote-path PATH]
2024-09-10T19:28:59.206741265Z                   [--remote-ratelimit RATE] [--upload-ratelimit RATE]
2024-09-10T19:28:59.206760505Z                   [--remote-buffer UPLOAD_BUFFER]
2024-09-10T19:28:59.206763385Z                   [--upload-buffer UPLOAD_BUFFER] [--consider-part-files]
2024-09-10T19:28:59.206766065Z                   [--debug-profile FILE] [--rsh RSH] [-n] [--force] [-s]
2024-09-10T19:28:59.206768585Z                   [--list] [--keep-within INTERVAL] [--keep-last SECONDLY]
2024-09-10T19:28:59.206771185Z                   [--keep-minutely MINUTELY] [-H HOURLY] [-d DAILY]
2024-09-10T19:28:59.206773705Z                   [-w WEEKLY] [-m MONTHLY] [-y YEARLY] [-P PREFIX | -a GLOB]
2024-09-10T19:28:59.206776225Z                   [--save-space] [-c SECONDS]
2024-09-10T19:28:59.206778665Z                   [REPOSITORY]
2024-09-10T19:28:59.206781145Z borg prune: error: argument -m/--keep-monthly: invalid int value: '2"'
2024-09-10T19:28:59.244715039Z Failed to prune archives!
szaimen commented 1 month ago

Hi,

  • BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=2"

You need to remove the quotes here so that it looks like this: - BORG_RETENTION_POLICY=--keep-within=7d --keep-weekly=4 --keep-monthly=2 which should fix the problem.