> From: zfs-discuss-boun...@opensolaris.org [mailto:zfs-discuss-
> boun...@opensolaris.org] On Behalf Of Carsten John
> I set up a script to replicate all zfs filesystems (some 300 user home
> directories in this case) within a given pool to a "mirror" machine. The
> idea is to send the snapshots incremental if the corresponding snapshot
> exists on the remote side or send a complete snapshot if no corresponding
> previous snapshot is available
> Thee setup basically works, but form time to time (within a run over all
> filesystems) I get error messages like:
> "cannot receive new filesystem stream: dataset is busy" or
> "cannot receive incremental filesystem stream: dataset is busy"
> does anybody have a suggestion what might cause the dataset to be busy?

Usually a dataset is "busy" when it's in the middle of receiving another
stream, or it thinks it is.  I haven't read your script, but I bet you don't
set a flag to indicate you're already running, and I bet you're running your
script via cron, and sometimes it takes longer to complete than the amount
of time between cron tasks, right?  Just an educated guess.  But even if I'm
wrong about your cron schedule, it's still a really good guess about the
root cause of your problem.

What else could cause it to be busy?  A receive is definitely one.  A scrub
or a resilver - maybe, I'm not sure.  But my best guess is that only a
receive would do this to you.

On some versions, there was a bug.  If the system crashed mid-receive, it
would keep the partially received clone indefinitely, breaking all future
receives, until you destroy that faulty clone.  This problem has been fixed,
assuming you've applied updates in the last year or so.  This does not match
the behavior you're seeing, does it?  If so, we'll tell you how to destroy
the hidden clone.  (And you should apply updates.)

zfs-discuss mailing list

Reply via email to