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>