Vzdump LXC error code 23

h1r0sh1ma

Member
Aug 26, 2019
2
0
21
19
Hello fellow Gens!

Virtual Environment 7.1-12
Using LVM Thin: No

Im getting the following error during the container backup (with installed Postgresql).
Code:
vzdump 110 --mailnotification always --storage local --mailto lxc110@co.jp --node my-server --mode suspend --compress zstd

110: 2022-07-08 14:43:42 INFO: Starting Backup of VM 110 (lxc)
110: 2022-07-08 14:43:42 INFO: status = running
110: 2022-07-08 14:43:42 INFO: backup mode: suspend
110: 2022-07-08 14:43:42 INFO: ionice priority: 7
110: 2022-07-08 14:43:42 INFO: CT Name: LXC-110
110: 2022-07-08 14:43:42 INFO: including mount point rootfs ('/') in backup
110: 2022-07-08 14:43:42 INFO: starting first sync /proc/2292404/root/ to /var/lib/vz/dump/vzdump-lxc-110-2022_07_08-14_43_42.tmp
110: 2022-07-08 14:45:44 INFO: first sync finished - transferred 23.63G bytes in 122s
110: 2022-07-08 14:45:44 INFO: suspending guest
110: 2022-07-08 14:45:44 INFO: starting final sync /proc/2292404/root/ to /var/lib/vz/dump/vzdump-lxc-110-2022_07_08-14_43_42.tmp
110: 2022-07-08 14:45:47 INFO: resume vm
110: 2022-07-08 14:45:47 INFO: guest is online again after 3 seconds
110: 2022-07-08 14:45:49 ERROR: Backup of VM 110 failed - command 'rsync --stats --verbose '--log-file=/tmp/rsync.log' --ignore-missing-args -h -X -A --numeric-ids -aH --delete --no-whole-file --inplace --one-file-system --relative '--exclude=/tmp/?*' '--exclude=/var/tmp/?*' '--exclude=/var/run/?*.pid' /proc/2292404/root//./ /var/lib/vz/dump/vzdump-lxc-110-2022_07_08-14_43_42.tmp' failed: exit code 23
Ive found that some files were vanished during the rsync:
Code:
2022/07/08 14:45:41 [2780269] file has vanished: "/proc/2292404/root/var/lib/postgresql/13/main/pg_subtrans/1624"
2022/07/08 14:45:41 [2780269] file has vanished: "/proc/2292404/root/var/lib/postgresql/13/main/pg_wal/000000010000005F00000055"
Using the manual ive created the rsync-no24 wrapper and replaced the initial rsync variable with rsync-no24 in the /usr/share/perl5/PVE/VZDump/LXC.pm
The whole string :
Code:
my $rsync = ['rsync-no24', '--stats', '--verbose', '--log-file=/tmp/rsync.log', '--ignore-missing-args', '-h', @xattr, '--numeric-ids',
                 '-aH', '--delete', '--no-whole-file',
                 ($first ? '--sparse' : '--inplace'),
                 '--one-file-system', '--relative'];
Now when im firing the vzdump utility i see:
Code:
root     2775935  0.0  0.0   2420   532 pts/0    S+   14:32   0:00 /bin/sh /bin/rsync-no24 --stats --verbose --ignore-missing-args -h -X -A --numeric-ids -aH --delete --no-whole-file --sparse --one-file-system --relative --exclude=/tmp/?* --exclude=/var/tmp/?* --exclude=/var/run/?*.pid /proc/2292404/root//./ /var/lib/vz/dump/vzdump-lxc-110-2022_07_08-14_32_47.tmp
root     2775936 24.6  0.0  84192 11040 pts/0    D+   14:32   0:01 rsync --stats --verbose --ignore-missing-args -h -X -A --numeric-ids -aH --delete --no-whole-file --sparse --one-file-system --relative --exclude=/tmp/?* --exclude=/var/tmp/?* --exclude=/var/run/?*.pid /proc/2292404/root//./ /var/lib/vz/dump/vzdump-lxc-110-2022_07_08-14_32_47.tmp
root     2775937  2.0  0.0  43104  3356 pts/0    S+   14:32   0:00 rsync --stats --verbose --ignore-missing-args -h -X -A --numeric-ids -aH --delete --no-whole-file --sparse --one-file-system --relative --exclude=/tmp/?* --exclude=/var/tmp/?* --exclude=/var/run/?*.pid /proc/2292404/root//./ /var/lib/vz/dump/vzdump-lxc-110-2022_07_08-14_32_47.tmp
root     2775938 53.0  0.0  84104  3744 pts/0    R+   14:32   0:02 rsync --stats --verbose --ignore-missing-args -h -X -A --numeric-ids -aH --delete --no-whole-file --sparse --one-file-system --relative --exclude=/tmp/?* --exclude=/var/tmp/?* --exclude=/var/run/?*.pid /proc/2292404/root//./ /var/lib/vz/dump/vzdump-lxc-110-2022_07_08-14_32_47.tmp
so i still have the same error.
Would you be so kind to advice how to deal with this nasty vanishing-files-situation ....
As you can see the additional rsync argument --ignore-missing-args didnt help either.

Thanks in advance.
 
Last edited:
To whom it may concern:
The code mentioned in the link (https://rsync.samba.org/FAQ.html#10) above does not work as intended.
The working one is the following:
Code:
#!/bin/bash
IGNOREEXIT=24
IGNOREOUT='^(file has vanished: |rsync warning: some files vanished before they could be transferred)'

set -o pipefail

rsync "${@}" 2>&1 | (egrep -v "$IGNOREOUT" || true)
ret=$?

if [[ $ret == $IGNOREEXIT ]]; then
    ret=0
fi

exit $ret
 
Last edited: