When sending snapshots to another machine with "zfs receive -F" the snapshots that no longer exist on the sending side, do not get deleted on the receiving side. How-To-Repeat: Something like this would do: zfs create rpool/test zfs snapshot rpool/test@snap1 zfs snapshot rpool/test@snap2 zfs snapshot rpool/test@snap3 zfs snapshot rpool/test@snap4 zfs send rpool/test@snap1 | ssh -c arcfour ssh backup.local zfs receive -F backup/test zfs send -i snap1 rpool/test@snap2 | ssh -c arcfour ssh backup.local zfs receive -F backup/test zfs send -i snap2 rpool/test@snap3 | ssh -c arcfour ssh backup.local zfs receive -F backup/test zfs destroy rpool/test@snap1 zfs send -i snap3 rpool/test@snap4 | ssh -c arcfour ssh backup.local zfs receive -F backup/test PS: Makes no difference if one uses the "-R" flag for "zfs send" or not.
The man page could make this more obvious but this is the expected behaviour. The -F option only affects snapshots located after the snapshot to which the dataset is rolled back before starting the receive operation. Without the -F option they would cause the receive operation to fail. Snapshots outside the "rollback window" aren't relevant for the receive operation and thus can be kept.
For bugs matching the following conditions: - Status == In Progress - Assignee == "bugs@FreeBSD.org" - Last Modified Year <= 2017 Do - Set Status to "Open"
Is this still reproducible with send -R and receive -F?