autorestic icon indicating copy to clipboard operation
autorestic copied to clipboard

Bug: Docker volume backup to B2 fails ("context deadline exceeded")

Open max-critcrew opened this issue 4 months ago • 0 comments

Describe the bug When trying to backup a local docker volume to Backblaze B2 it after ~60 seconds with the following error: Fatal: unable to open repository at b2:backup-bucket-test: context deadline exceeded

TL;DR: Only the combination of B2 as backend + docker volume as location is broken. Backing up a local folder location to B2 works fine. Backing up a docker volume to a local backend works fine.

Full console output:

> Executing: /usr/bin/docker volume inspect backup-source-container-test-volume
[
    {
        "CreatedAt": "2024-03-07T14:28:38Z",
        "Driver": "local",
        "Labels": {
            "com.docker.compose.project": "backup-source-container-test",
            "com.docker.compose.version": "2.20.2",
            "com.docker.compose.volume": "backup-source-container-test-volume"
        },
        "Mountpoint": "/var/lib/docker/volumes/backup-source-container-test-volume/_data",
        "Name": "backup-source-container-test-volume",
        "Options": null,
        "Scope": "local"
    }
]
> Executing: /usr/bin/docker run --rm --entrypoint ash --workdir /data --volume backup-source-container-test-volume:/data --hostname my-server-1 --env B2_ACCOUNT_KEY=<redacted> --env B2_ACCOUNT_ID=<redacted> --env RESTIC_PASSWORD=<redacted> --env RESTIC_REPOSITORY=b2:backup-server1-test cupcakearmy/autorestic:1.7.11 -c restic backup --tag ar:location:docker-volume-test /data

Location definition:

locations:
  docker-volume-test:
    from:
    - backup-source-container-test-volume
    type: volume
    to:
    - b2-bucket-test-1-root-folder
    hooks:
      dir: ""
      before: []
      after: []
      success: []
      failure: []
    cron: ""
    options:
      forget:
        keep-daily:
        - 4
        keep-hourly:
        - 3
        keep-last:
        - 5
        keep-monthly:
        - 12
        keep-weekly:
        - 1
        keep-within:
        - 14d
        keep-yearly:
        - 7
    copyoption: {}

Backend definition:

backends:
  b2-bucket-test-1-root-folder:
    type: b2
    path: backup-server1-test
    key: <redacted>
    env:
      b2_account_id: <redacted>
      b2_account_key: <redacted>
    rest:
      user: ""
      password: ""
    options: {}

Further tests I did in order to rule out that my B2 is not working or the docker volume is the issue:

  • If I change the backend of my location docker-volume-test to a local backend, it backs up just fine
  • If I back up a local folder with my backend b2-bucket-test-1-root-folder, it also backs up fist fine

Expected behavior

  • Backing up a docker volume to B2 works just as it does with a local backend for example

Environment

  • OS:
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
  • Version:
$ autorestic --version
autorestic version 1.7.11

Additional context If anybody could run a test to backup a docker volume to Backblaze (or any other cloud provider), that'd be awesome to compare configurations. Any helps is much appreciated and thanks for your time reading this :)

max-critcrew avatar Mar 07 '24 16:03 max-critcrew