ZFS "zfs send -R -I | zfs receive -F" not destroying snapshots that don't exist on the sending side

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:
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
desthost now has the filesystem and all snapshots.
Code:
zfs snapshot ds/test@6
zfs send -R -I ds/test@5 ds/test@6 | ssh desthost zfs receive -F ds/test
desthost now has the test@6 snapshot
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
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.
 
Back
Top