On Sep 29, 2009, at 10:29 AM, Borja Marcos wrote:
Hello,
I have observed a deadlock condition when using ZFS. We are making a
heavy usage of zfs send/zfs receive to keep a replica of a dataset
on a remote machine. It can be done at one minute intervals. Maybe
we're doing a somehow atypical usage of ZFS, but, well, seems to be
a great solution to keep filesystem replicas once this is sorted out.
How to reproduce:
Set up two systems. A dataset with heavy I/O activity is replicated
from the first to the second one. I've used a dataset containing /
usr/obj while I did a make buildworld.
Replicate the dataset from the first machine to the second one using
an incremental send
zfs send -i pool/data...@nminus1 pool/data...@n | ssh destination
zfs receive -d pool
When there is read activity on the second system, reading the
replicated system, I mean, having read access while zfs receive is
updating it, there can be a deadlock. We have discovered this doing
a test on a hopefully soon in production server, with 8 GB RAM. A
Bacula backup agent was running and ZFS deadlocked.
Sorry, forgot to explain what was happening on the second system (the
one receiving the incremental snapshots) for the deadlock to happen.
It was just running an endless loop, copying the contents of /usr/obj
to another dataset, in order to keep the reading activity going on.
That's how it has deadlocked. On the original test system an rsync did
the same trick.
Borja
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"