Open Massimo-B opened 8 months ago
Scrub on source and target btrfs found no errors.
My guess is that it doesn't like something in the parent file, like the "inline extent followed by regular extents" pattern. There's a short list of things that can make clone return EINVAL (and why they shouldn't happen):
fill_holes
)Can you:
btrfs receive -vv
to get debug messagesclone %s - source=%s source offset=%llu offset=%llu length=%llu
),btrfs-search-metadata file
on all versions of the clone source file (parent and current subvol, src and dst filesystem)btrfs-search-metadata file
on the clone destination file too (that's usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-1.pyc
from the error message)1. reproduce this with `btrfs receive -vv` to get debug messages
Ok, for the current failure:
ERROR: ... sh: ssh -i '/root/.ssh/id_ed25519' -o compression=no root@mmu 'btrfs send -p '\''/mnt/btrfs-top-lvl/snapshots/root/root.20230904T150800+0200'\'' --proto 2 --compressed-data '\''/mnt/btrfs-top-lvl/snapshots/root/root.20230925T072800+0200'\'' | mbuffer -v 1 -q -m 5% | lz4 -c' | lz4 -d -c | mbuffer -v 1 -m 5% | btrfs receive '/mnt/usb/mobiledata/snapshots/mmu/root/'
ERROR: ... failed to clone extents to usr/lib/python3.11/site-packages/numpy/core/tests/__pycache__/test_multiarray.cpython-311.opt-1.pyc: Invalid argument
I tried with -vv on the receiver:
mkfile o13295363-195048-0
rename o13295363-195048-0 -> usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-2.pyc
utimes usr/lib/python3.11/site-packages/numpy/distutils/__pycache__
write usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-2.pyc - offset=0 length=4096
encoded_write usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-2.pyc - offset=4096, len=40960, unencoded_offset=4096, unencoded_file_len=89973, unencoded_len=94208, compression=2, encryption=0
chown usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-2.pyc - uid=0, gid=0
chmod usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-2.pyc - mode=0664
utimes usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-2.pyc
mkfile o13295364-195048-0
rename o13295364-195048-0 -> usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-1.pyc
utimes usr/lib/python3.11/site-packages/numpy/distutils/__pycache__
write usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-1.pyc - offset=0 length=4096
clone usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-1.pyc - source=usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-1.pyc source offset=4096 offset=4096 length=16384
ERROR: failed to clone extents to usr/lib/python3.11/site-packages/numpy/distutils/__pycache__/ccompiler_opt.cpython-311.opt-1.pyc: Invalid argument
summary: 210 MiByte in 8min 28.0sec - average of 423 kiB/s
For btrfs-search-metadata
do I need to install python-btrfs?
Hi, btrbk sending to ssh targets often fails due to "failed to clone extents".
How can I fix that, how can I find the failing subvolume to drop and re-transfer? I tried the
btrfs send ... >/dev/null
only on the remote machine, that works without errors.