so this sequence here should represent one of the failed backups:
you can see how it
the first one does not apply, since we set
can you try "touching" a path under /mnt/backup/.chunks/bb9f as user and group backup?
Code:
mkdir("/mnt/backup/vm", 0777) = 0
mkdir("/mnt/backup/vm/101", 0777) = 0
openat(AT_FDCWD, "/mnt/backup/vm/101", O_RDONLY) = 26
openat(AT_FDCWD, "/mnt/backup/vm/101/owner", O_WRONLY|O_CREAT|O_EXCL|O_CLOEXEC, 0666) = 27
openat(AT_FDCWD, "/mnt/backup/vm/101/owner", O_RDONLY|O_CLOEXEC) = 27
openat(AT_FDCWD, "/mnt/backup/vm/101", O_RDONLY) = 27
mkdir("/mnt/backup/vm/101/2021-04-20T12:55:07Z", 0777) = 0
openat(AT_FDCWD, "/mnt/backup/vm/101/2021-04-20T12:55:07Z", O_RDONLY) = 27
openat(AT_FDCWD, "/proc/836/stat", O_RDONLY|O_CLOEXEC) = 28
statx(28, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_BASIC_STATS, stx_attributes=0, stx_mode=S_IFREG|0444, stx_size=0, ...}) = 0
openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 28
openat(AT_FDCWD, "/", O_RDONLY|O_DIRECTORY) = 28
mkdirat(28, "var", 0755) = -1 EEXIST (File exists)
openat(28, "var", O_RDONLY|O_DIRECTORY) = 29
mkdirat(29, "log", 0755) = -1 EEXIST (File exists)
openat(29, "log", O_RDONLY|O_DIRECTORY) = 28
mkdirat(28, "proxmox-backup", 0755) = -1 EEXIST (File exists)
openat(28, "proxmox-backup", O_RDONLY|O_DIRECTORY) = 29
mkdirat(29, "tasks", 0755) = -1 EEXIST (File exists)
openat(29, "tasks", O_RDONLY|O_DIRECTORY) = 28
mkdirat(28, "88", 0755) = -1 EEXIST (File exists)
openat(28, "88", O_RDONLY|O_DIRECTORY) = 29
openat(AT_FDCWD, "/var/log/proxmox-backup/tasks/88/UPID:pbs:00000344:00000188:00000008:607ECF2C:backup:backup\\x3avm-101:christoph@pbs:", O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC, 0666) = 28
chown("/var/log/proxmox-backup/tasks/88/UPID:pbs:00000344:00000188:00000008:607ECF2C:backup:backup\\x3avm-101:christoph@pbs:", 34, 34) = 0
openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 29
openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 29
openat(AT_FDCWD, "/var/log/proxmox-backup/tasks/.active.lock", O_WRONLY|O_CREAT|O_APPEND|O_CLOEXEC, 0666) = 29
chown("/var/log/proxmox-backup/tasks/.active.lock", 34, 34) = 0
openat(AT_FDCWD, "/var/log/proxmox-backup/tasks/index", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/var/log/proxmox-backup/tasks/active", O_RDONLY|O_CLOEXEC) = 30
openat(AT_FDCWD, "/var/log/proxmox-backup/tasks/active.tmp_b0GbBw", O_RDWR|O_CREAT|O_EXCL, 0600) = 30
rename("/var/log/proxmox-backup/tasks/active.tmp_b0GbBw", "/var/log/proxmox-backup/tasks/active") = 0
openat(AT_FDCWD, "/mnt/backup/vm/101/2021-04-20T12:55:07Z/drive-scsi0.img.tmp_fidx", O_RDWR|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 29
access("/dev/random", R_OK) = 0
statx(AT_FDCWD, "/mnt/backup/.chunks/bb9f/bb9f8df61474d25e71fa00722318cd387396ca1736605e1248821cc0de3d3af8", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7f772b9f98a0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/mnt/backup/.chunks/bb9f/bb9f8df61474d25e71fa00722318cd387396ca1736605e1248821cc0de3d3af8.tmp", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = -1 ENOENT (No such file or directory)
you can see how it
- checks the owner successfully (mkdir/openat)
- starts the task status/log files and snapshot directory successfully (mkdirat/openat/chown/rename)
- opens the tmp file for the index successfully (openat .... .tmp_fidx)
- tries to see if the first chunk exists (statx - result is ENOENT, which is okay in this case)
- tries to open the tmp file for writing that chunk (openat - result is ENOENT, which is an error, see below)
Code:
man openat
...
ENOENT O_CREAT is not set and the named file does not exist.
ENOENT A directory component in pathname does not exist or is a dangling symbolic link.
ENOENT pathname refers to a nonexistent directory, O_TMPFILE and one of O_WRONLY or O_RDWR were specified in flags, but this kernel version does not provide the O_TMPFILE functionality.
...
the first one does not apply, since we set
O_CREAT
. the last one does not apply since we haven't set O_TMPFILE
. that leaves the middle one - either the .chunks
or the bb9f
sub directory must be broken somehow - /mnt/backup itself should be okay, we access that earlier in the strace without any problems.can you try "touching" a path under /mnt/backup/.chunks/bb9f as user and group backup?