Open darkpixel opened 4 years ago
Huh. only just saw this one.
erm.. isnt the resume thing supposed to set all the flags automaticaly, below the zrep level? is this actualy a ZFS bug?
ZFS doesn't transfer the children "in bulk". It transfers them individually and the resume flag is set for each individual transfer. So if you have:
tank
tank/virt
tank/virt/vm-100-disk-0
tank/virt/vm-100-disk-1
tank/virt/vm/101-disk-0
And it sends vm-100-disk-0 and them bombs out on 100-disk-1, the next time zrep runs against tank/virt it will bomb out because it's not checking to see if the previous transfers completed successfully and it has no idea bout the 'remote state'.
Syncoid has a slightly different process. It appears to:
But this bug was more about zrep not sending the resume flag during a resume. I'm not sure if it's fixed in the latest version, but it appears when it detects an interrupted resume, it tries to fix it but fails to send the resume flag. Then when it bombs out (since the resume flag wasn't passed) the remote deletes the entire dataset.
I wasn't able to see the command it ran, but my guess based on the error message is that it was missing the
--raw
flag from thezfs send
command.