Skip to content

Unable to receive encrypted raw send #12720

Description

@putnam

System information

Type Version/Name
Distribution Name Debian
Distribution Version bookworm/testing
Kernel Version 5.14.0-2
Architecture amd64
OpenZFS Version 2.0.6-1

Describe the problem you're observing

I am trying to transfer an encrypted dataset to another pool using a raw send. Partially through this send, the receive side fails with an unclear error message.

The receiving system is also on 2.0.6, running Debian Bullseye on kernel 5.10.0-9.

Here are the commands that reproduce the issue reliably:

source# zfs send -Lcw -v tank/enc/private@zfs-auto-snap_monthly-2020-07-01-1152 | mbuffer -O 10.200.200.2:13337

dest# mbuffer -I 13337 | zfs receive -uv archive/dwight/tank/private

The dataset is about 1.3TB; at the 360GB mark, the receive reliably fails with the following error:

cannot receive new filesystem stream: invalid backup stream

Oddly, if you provide the -s flag to the recv (enable resume support) the error changes to this:

cannot receive new filesystem stream: kernel modules must be upgraded to receive this stream.

I tried sending the stream through zstreamdump, which did not complain. I also maximized debug logging, generated a resume token and tried resuming (right at whatever transaction caused the recv to fail), which generated these messages (gist). It's noisy; see line 1786 for when receive_object failed.

I don't know the exact steps to reproduce this problem with another dataset. Originally this dataset was on another pool in an unencrypted state. It was sent into the encrypted pool just fine, then I wanted to raw-send the newly-encrypted dataset offsite to another pool. It is at this point that I ran into this show-stopper.

See also the gist below which is the output of zstreamdump -vvv on the resumed send.

https://gist.github.com/putnam/3a467fdab6fe96ca048264c1bcd8a4b0

UPDATE: In the discussion below, I was able to shrink the affected dataset down to a ~70MB repro. See this comment for an attachment.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions