This appears to be new to 12.2-RELEASE. If the receiving side is running 12.1 or 12.0, it works fine, but if the receiving side is running 12.2, then snapshots that don't exist on the sending side are not deleted from the receiving side.
The version of the sending side doesn't appear to make any difference, the problem appears to be strictly on the receive side, and consistently works prior to 12.2 and doesn't with 12.2. In fact, running freebsd-update to upgrade from 12.1 to 12.2 on the same hardware causes the problem to appear, and reverting back to 12.1, the problem disappears.
Sample commands:
desthost now has the filesystem and all snapshots.
desthost now has the test@6 snapshot
If desthost is running 12.2, then test@2 and test@3 remain. If desthost is running 12.1 or 12.0, then test@2 and test@3 are destroyed.
The version of the sending side doesn't appear to make any difference, the problem appears to be strictly on the receive side, and consistently works prior to 12.2 and doesn't with 12.2. In fact, running freebsd-update to upgrade from 12.1 to 12.2 on the same hardware causes the problem to appear, and reverting back to 12.1, the problem disappears.
Sample commands:
Code:
zfs create ds/test
zfs snapshot ds/test@1
zfs snapshot ds/test@2
zfs snapshot ds/test@3
zfs snapshot ds/test@4
zfs snapshot ds/test@5
zfs send -R ds/test@5 | ssh desthost zfs receive -F ds/test
Code:
zfs snapshot ds/test@6
zfs send -R -I ds/test@5 ds/test@6 | ssh desthost zfs receive -F ds/test
Code:
zfs destroy ds/test@2
zfs destroy ds/test@3
zfs send -R -I ds/test@5 ds/test@6 | ssh desthost zfs receive -F ds/test