8.1-STABLE: problem with unmounting ZFS snapshots

Alexander Zagrebin alexz at visp.ru
Fri Nov 12 11:58:01 UTC 2010


I have found that there is an issue with unmounting ZFS snapshots:
the /sbin/umount "hangs" after unmounting.

The test system is i386, but I can reproduce this issue on amd64 too.

# uname -a
FreeBSD alpha.vosz.local 8.1-STABLE FreeBSD 8.1-STABLE #0: Tue Oct 19
18:47:05 MSD 2010     root at alpha.vosz.local:/usr/obj/usr/src/sys/GENERIC
i386

How to try to repeat:

# zfs snapshot pool/var at test

# zfs list -t all -r pool/var
NAME            USED  AVAIL  REFER  MOUNTPOINT
pool/var       4,86M  2,99G  4,86M  /var
pool/var at test      0      -  4,86M  -

# mount -t zfs pool/var at test /mnt

# mount
...
pool/var at test on /mnt (zfs, local, noatime, read-only)

# umount /mnt

At this point umount hangs and it's impossible to kill it
even with the `kill -9`.

>From the working console I can see that:
1. snapshot is unmounted successfully

# mount
pool/root on / (zfs, local)
devfs on /dev (devfs, local, multilabel)
pool/home on /home (zfs, local)
pool/tmp on /tmp (zfs, local)
pool/usr on /usr (zfs, local)
pool/usr/src on /usr/src (zfs, local)
pool/var on /var (zfs, local)

2. the umount is waiting for disk
#ps | egrep 'PID|umount'
  PID  TT  STAT      TIME COMMAND
  958   0  D+     0:00,04 umount /mnt
# procstat -t 958
  PID    TID COMM             TDNAME           CPU  PRI STATE   WCHAN
  958 100731 umount           -                  3  133 sleep   mntref

Can anybody confirm this issue?
Any suggestions?

-- 
Alexander Zagrebin



More information about the freebsd-fs mailing list