Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Dec 2020 21:06:33 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 252240] "zfs send -R -I | zfs receive -F" not destroying snapshots that don't exist on the sending side
Message-ID:  <bug-252240-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D252240

            Bug ID: 252240
           Summary: "zfs send -R -I | zfs receive -F" not destroying
                    snapshots that don't exist on the sending side
           Product: Base System
           Version: 12.2-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: lew@perftech.com

This is similar to 169964, but that was due to lack of the -R option, so I'm
submitting this as a new bug.

This appears to be new to 12.2-RELEASE. If the receiving side is running 12=
.1
or 12.0, everything works properly, but if the receiving side is running 12=
.2,
then snapshots that don't exist on the sending side are not destroyed on 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 fails =
with
12.2 and withs with 12.1 or prior. In fact, on a given system, running
freebsd-update to upgrade from 12.1 to 12.2 causes the problem to appear, a=
nd
reverting back to 12.1, the problem disappears.

Sample commands:

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.

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

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.

And it doesn't matter whether the snapshot has previously synced or not, for
example:

zfs snapshot ds/test@7
zfs send -R -I ds/test@6 ds/test@7 | ssh desthost zfs receive -F ds/test

still doesn't cause @2 and @3 to get destroyed.  However,

zfs send -R -I ds/test@1 ds/test@7 | ssh desthost zfs receive -F ds/test

does cause @2 and @3 to get destroyed.  But that's not an acceptable
work-around, and this appears to be a regression from prior versions.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-252240-227>