Closed cryobry closed 1 year ago
I'm going to test this again overnight using send_protocol '2'
.
When using send protocol '2'
, the btrfs send stream stops transferring shortly after starting without any errors.
Creating backup: router.lan:/mnt/backup/workstation/home/bryan.20230104T2216
[send/receive] target: router. lan: /mnt/backup/workstation/home/bryan.20230104T2216
[send/receive] source: /home/.snapshots/bryan.20230104T2216
in@ 0.0 kiB/s, out @ 0.0 kiB/s, 744 MiB total, buffer 100% full]
Source machine:
Linux workstation 6.0.15-300.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Dec 21 18:33:23 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux btrfs-progs v6.1.2
Receive machine: Linux router 5.10.146 #0 SMP PREEMPT Fri Oct 14 22:44:41 2022 aarch64 GNU/Linux btrfs-progs v6.0.1
The error states system.posix_acl_default= failed: Not supported
, which most probably means that you don't have ACL support for btrfs in the kernel on the receiving host, but your sending host makes use of ACL's in the subvolume transferred. Check if your kernel has BTRFS_FS_POSIX_ACL
enabled.
If you can't change the kernel on the target, you can disable ACL's by setting noacl
in /etc/fstab. (Note that your distro might depend on this for some security features).
When using send protocol '2', the btrfs send stream stops transferring shortly after starting without any errors.
I believe you need kernel >= 6.0 on the receiving host as well for send protocol 2 to work.
I understand that this is largely an upstream issue, I'm just curious why --max-errors=0 isn't skipping the lsetxattr steps in the stream, or if there are any other things I can try to get send-receive working between these two devices.
No idea why --max-errors=0 has no effect here, maybe it's a bug in btrfs-progs?
Linux workstation 6.0.15-300.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Dec 21 18:33:23 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
LOL, github effectively links to issue #1
with your kernel version :D
Indeed, this was caused by missing ACL support on the OpenWRT target. I recompiled OpenWRT with the CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y config option and all is working again.
I am trying to backup to an OpenWRT device without selinux but btrbk fails due to missing lsetxattr even with the compatibility option 'ignore_receive_errors' enabled.
I understand that this is largely an upstream issue, I'm just curious why --max-errors=0 isn't skipping the lsetxattr steps in the stream, or if there are any other things I can try to get send-receive working between these two devices.