Skip to contentSkip to conversation

btrfs receive fails

DISCUSSION Stephan Olbrich 3 participants 4 messages Jan 23, 2016 – Jan 25, 2016 Btrfs file system

lore
Share & tools
lore
#0 lore raw

Hi,

I have three btrfs volumes. I do daily snapshots and transfer them to another drive. This works fine for two of the volumes, for the 3. one the send works fine but the receive sometimes fails with the following output:

ERROR: unlink o128782-4421-0 failed. No such file or directory

The o128782-4421-0 is different each time but it is always "o" and then some numbers.
My current workaround is to do the send with another parent (-p)

The problematic volume is my data partition and usually not much happening there besides the owncloud-client writing some status files (sqlite database).

# uname -a
Linux chaos-desktop 4.2.1-040201-generic #201509211431 SMP Mon Sep 21 18:34:44 
UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
# btrfs --version
btrfs-progs v4.0

Regards,
Stephan

#1 lore raw
Quoted 15 lines · Stephan Olbrich

Hi,

I have three btrfs volumes. I do daily snapshots and transfer them to another drive. This works fine for two of the volumes, for the 3. one the send works fine but the receive sometimes fails with the following output:

ERROR: unlink o128782-4421-0 failed. No such file or directory

The o128782-4421-0 is different each time but it is always "o" and then some numbers.
My current workaround is to do the send with another parent (-p)

The problematic volume is my data partition and usually not much happening there besides the owncloud-client writing some status files (sqlite database).

Quoted 6 lines
# uname -a
Linux chaos-desktop 4.2.1-040201-generic #201509211431 SMP Mon Sep 21 18:34:44
UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
# btrfs --version
btrfs-progs v4.0

I suggest first seeing if the problem is reproducible with btrfs-progs 4.3.1 or 4.4, since there have been receive bug fixes since v4.0 (which is now kinda old) and most of the receive code is in the user space tools as I understand it. If that doesn't fix it, then I'd try two more things in parallel, one is -vvv on both the send and receive commands to see if that can help determine if the problem is on the send or receive side. Maybe someone will recognize the problem. And then also update the kernel to 4.4.0, 4.3.3, or 4.2.8 (in order of preference) because almost inevitably you're going to be asked to upgrade the kernel version to see if it's reproducible there.

Signature · 1 line
Chris Murphy
#2 lore raw
Quoted 24 lines · Chris Murphy
Quoted 15 lines · Stephan Olbrich

Hi,

I have three btrfs volumes. I do daily snapshots and transfer them to another drive. This works fine for two of the volumes, for the 3. one the send works fine but the receive sometimes fails with the following output:

ERROR: unlink o128782-4421-0 failed. No such file or directory

The o128782-4421-0 is different each time but it is always "o" and then some numbers.
My current workaround is to do the send with another parent (-p)

The problematic volume is my data partition and usually not much happening there besides the owncloud-client writing some status files (sqlite database).

Quoted 6 lines
# uname -a
Linux chaos-desktop 4.2.1-040201-generic #201509211431 SMP Mon Sep 21 18:34:44
UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
# btrfs --version
btrfs-progs v4.0
Quoted 12 lines

I suggest first seeing if the problem is reproducible with btrfs-progs 4.3.1 or 4.4, since there have been receive bug fixes since v4.0 (which is now kinda old) and most of the receive code is in the user space tools as I understand it. If that doesn't fix it, then I'd try two more things in parallel, one is -vvv on both the send and receive commands to see if that can help determine if the problem is on the send or receive side. Maybe someone will recognize the problem. And then also update the kernel to 4.4.0, 4.3.3, or 4.2.8 (in order of preference) because almost inevitably you're going to be asked to upgrade the kernel version to see if it's reproducible there.

Building further on that, there are some times that something in the metadata for a file can cause send/receive to fail. Using -vv on the receive side should give you enough info to narrow down which file if this is indeed the case, at which point you can fix the file by either copying it to another filesystem and back again, or reinstalling whichever package it belongs to. It's worth noting that if something like this is happening, it's probably multiple files with this issue, not just one, so it may take multiple tries to get things working again.

#3 lore raw

Am Monday 25 January 2016, 07:18:22 schrieb Austin S. Hemmelgarn:

Quoted 2 lines · Chris Murphy
Quoted 1 line

On Sat, Jan 23, 2016 at 12:44 PM, Stephan Olbrich <[email protected]>

Quoted 36 lines · wrote:
Quoted 25 lines
Quoted 18 lines

Hi,

I have three btrfs volumes. I do daily snapshots and transfer them to another drive. This works fine for two of the volumes, for the 3. one the send works fine but the receive sometimes fails with the following output:

ERROR: unlink o128782-4421-0 failed. No such file or directory

The o128782-4421-0 is different each time but it is always "o" and then some numbers.
My current workaround is to do the send with another parent (-p)

The problematic volume is my data partition and usually not much happening
there besides the owncloud-client writing some status files (sqlite database).

Quoted 6 lines
# uname -a
Linux chaos-desktop 4.2.1-040201-generic #201509211431 SMP Mon Sep 21
18:34:44 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
# btrfs --version
btrfs-progs v4.0
Quoted 10 lines

I suggest first seeing if the problem is reproducible with btrfs-progs 4.3.1 or 4.4, since there have been receive bug fixes since v4.0 (which is now kinda old) and most of the receive code is in the user space tools as I understand it. If that doesn't fix it, then I'd try two more things in parallel, one is -vvv on both the send and receive commands to see if that can help determine if the problem is on the send or receive side. Maybe someone will recognize the problem. And then also update the kernel to 4.4.0, 4.3.3, or 4.2.8 (in order of preference) because almost inevitably you're going to be asked to upgrade the kernel version to see if it's reproducible there.

Quoted 8 lines

Building further on that, there are some times that something in the metadata for a file can cause send/receive to fail. Using -vv on the receive side should give you enough info to narrow down which file if this is indeed the case, at which point you can fix the file by either copying it to another filesystem and back again, or reinstalling whichever package it belongs to. It's worth noting that if something like this is happening, it's probably multiple files with this issue, not just one, so it may take multiple tries to get things working again.

Thanks a lot for your tipps.

# uname -a
Linux chaos-desktop 4.4.0-040400-generic #201601101930 SMP Mon Jan 11 00:32:41 
UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
# btrfs --version                                                                                                                                                           
btrfs-progs v4.4

Now the problem seems to be gone. If it shows up again, I'll report back.

For the record:
Using -vv did not give much information, just a lot of plausible changes and right before the error "unlink o128782-4421-0"
o128782-4421-0 did not show up before that, so I don't know where it came from. Also with the new kernel and btrfs-progs o128782-4421-0 didn't show up in the output, so I guess the send part changed something here.

Regards,
Stephan