Fun with ZFS

Craig Boston craig at
Tue Apr 10 21:49:02 UTC 2007

Just playing around, doing some stress testing and see what I could
break.  Since zvols are exposed as GEOM providers I decided to see if it
would accept them in a pool.  Slightly surprising, it works without

# zfs create -V 4G tank/testvol
# zpool create test zvol/tank/testvol

The resulting /test seems full functional.  Though why anyone would want
to do such a thing I have no idea.

More in the realm of intentional foot-shooting, you can get a nice
deadlock by doing that recursively:

# zfs create -V 1G test/panicme
# zpool add test zvol/test/panicme


Though as far as deadlocks go it's not a particularly bad one.  zpool
and zfs commands all hang in zfs:(& or zfs:&s states, but the
filesystems can still be accessed -- even the ones in the test pool

Of course there can be no sane behavior to the above sequence of
commands, except perhaps a panic or a stern warning message if it's
really nice.

Next up: interactions with ggate and other GEOM classes.


More information about the freebsd-current mailing list