Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 May 2011 13:41:03 +0200
From:      Borja Marcos <borjam@sarenet.es>
To:        luke@hybrid-logic.co.uk
Cc:        Charles Sprickman <spork@bway.net>, stable@FreeBSD.org, Jeremy Chadwick <freebsd@jdc.parodius.com>, Andriy Gapon <avg@FreeBSD.org>
Subject:   Re: 8.1R possible zfs snapshot livelock?
Message-ID:  <867340A1-B7F4-452C-BB7E-93CAF7E4ABA8@sarenet.es>
In-Reply-To: <1305876839.13971.5.camel@pow>
References:  <alpine.OSX.2.00.1105170120510.1983@hotlap.nat.fasttrackmonkey.com> <20110517073029.GA44359@icarus.home.lan> <4DD25264.8040305@FreeBSD.org> <20110517112952.GA48610@icarus.home.lan> <FCE5F082-A3BF-4A21-B2E3-FEF3EA715F2C@sarenet.es> <1305876839.13971.5.camel@pow>

next in thread | previous in thread | raw e-mail | index | archive | help

On May 20, 2011, at 9:33 AM, Luke Marsden wrote:

>> If  you wish to reproduce it, try creating a dataset for /usr/obj,
>> running make buildworld on it, replicating at, say, 30 or 60 second
>> intervals, and keep several scripts (or rsync) reading the target
>> dataset files and just copying them to another place in the usual,
>> "classic" way. (example: tar cf - . | ( cd /destination && tar xf -)
>>=20
>=20
> Is there a PR for this?  I'd like to see it addressed, since read-only
> I/O on a dataset which is being updated by `zfs recv` is an important
> part of what we plan to do with ZFS on FreeBSD.

Hello,

Sorry for the delay to anwer. I think I added some information about =
this issue to a related PR but I'm unable to find it right now.

I had a discussion about this issue as well, you can read the relevant =
threads here:

http://osdir.com/ml/freebsd-fs/2010-03/msg00062.html

http://kerneltrap.org/mailarchive/freebsd-fs/2009/10/31/6535463/thread


In hindsight, however, unless you are working in very clearly defined =
conditions, it doesn't make much sense to keep even reading activity on =
the target dataset.

What happens if you keep a file open for reading while the "zfs recv" =
operation is done? What happens if you are traversing a directory, which =
means that you keep the directory open, and the destination dataset is =
"replaced" by a new one by a recv?

For read-only operations I would rely on clones instead.=20





Borja.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?867340A1-B7F4-452C-BB7E-93CAF7E4ABA8>