Am 21.02.21 um 07:54 schrieb Andrei Borzenkov:
20.02.2021 20:45, Alexander Wetzel пишет:

# time btrfs receive -v -f test2 .
receiving snapshot 2021-02-20-TEMP
uuid=120113e6-f83c-b240-ba27-259be4c92ea7, ctransid=206769
parent_uuid=d31d553f-0917-3c48-b65c-ec51fd0c6d89, parent_ctransid=195056
...
write var/lib/mysql/nextcloud/oc_activity.ibd - offset=737280 length=8192
ERROR: clone: did not find source subvol

Unforutnately btrfs receive does not print clone source UUID even with
"btrfs receive --dump". The best is to modify process_clone to print
full command including UUID which was not found.


I've patched cmds/receive.c to print out the uuid subvol_uuid_search was not able to find:

Basically these I replaced the original error message with:
uuid_unparse(clone_uuid, uuid_str);
error("clone: did not find source subvol si=%i, uuid=%s", si, uuid_str);

With that modification I get:

At snapshot 2021-02-20-TEMP
ERROR: clone: did not find source subvol si=0, uuid=d31d553f-0917-3c48-b65c-ec51fd0c6d89

But uuid d31d553f-0917-3c48-b65c-ec51fd0c6d89 is the uuid of the correct parent...

The problem here seems to be the zero return of ubvol_uuid_search().

While compiling I also switched to https://github.com/kdave/btrfs-progs.git. Same problem.

I then tracked the error down up to btrfs_uuid_tree_lookup_any():

nr_items is zero after the call
ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &search_arg);
(ret is also zero)

So looks like this is a filesystem issue?

Alexander

Reply via email to