Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 02 Nov 2010 19:27:51 +0100
From:      Lapo Luchini <lapo@lapo.it>
To:        freebsd-fs@freebsd.org
Cc:        Luigi Lauro <luigi.lauro@gmail.com>
Subject:   Re: ZFS recv doesn't properly skip existing snapshots
Message-ID:  <4CD05827.9040903@lapo.it>
In-Reply-To: <49BAD057.6060602@jrv.org>
References:  <49BAD057.6060602@jrv.org>

next in thread | previous in thread | raw e-mail | index | archive | help
James R. Van Artsdalen wrote:
> I'm working on a way to keep a remote pool in sync with a local pool
> using zfs send/recv.  [...]
> It appears "zfs recv" is supposed to simply skip any snapshot it already
> has [...] But instead "zfs recv" appears to never get in
> sync with the input stream again and simple exits.

I have come to the same conclusions, it seems to me that it follows a
"fail fast" approach and simply closes after the first "ignore", even
though the could be useful data afterwards.

In this thread http://opensolaris.org/jive/thread.jspa?threadID=116790
they're asking the O.P. "why are you sending the wrong initial snap?"
which applies to the case of sending a single filesystem, but as you
correctly pointed out when sending "zfs send -RI" an inconsistent state
can be reached even using the "correct" inizial snapshot, which might
exist on some of the sub-filesystems and not on the others.

I wonder if it might be as simple as removing the "fail fast" exit code
which I thin might be used after the "already exists; ignoring" warning,
but I still have to find the place in the code that is printed.

Oh, on 8-STABLE it is printed in line 1885 of
/usr/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
and the is no "fail fast" at all, so I guess it is failing (without
verbose errors) in recv_skip().

-- 
Lapo Luchini - http://lapo.it/




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4CD05827.9040903>