-current lock up at dump -L with snapshot

Jun Kuriyama kuriyama at imgsrc.co.jp
Thu Feb 12 07:05:08 PST 2004


I'm still tracking down why my box is usually locking up.

Reference: http://docs.freebsd.org/cgi/mid.cgi?7mznedas57.wl

I try to simplify how to reproduce this.

(a) A filesystem without any snapshot, I can take a dump -L.

(b) A filesystem with a snapshot, I can take a dump (without -L).

(c) A filesystem with a snapshot, I cannot take a dump -L.

% dump -1 -f /dev/null -S -L /       
  DUMP: Date of this level 1 dump: Thu Feb 12 23:52:43 2004
  DUMP: Date of last level 0 dump: Wed Feb 11 16:30:22 2004
  DUMP: Dumping snapshot of /dev/ad4s1a (/) to /dev/null
  DUMP: mapping (Pass I) [regular files]	<--- stopped here

This filesystem is /, so softdep is disabled, but situation is the
same with softdep.

"dump -L" is doing following:

 1) take a snapshot: "mksnap_ffs / /.snap/dump_snapshot".
 2) open a snapshot: open("/.snap/dump_snapshot", O_RDONLY).
 3) unlink a snapshot: unlink("/.snap/dump_snapshot")
 4) ...
 5) pread(2) opened snapshot.

dump(8) is locked at 5) syscall.  At that time, ddb's "show
lockedvnods" shows (line number may be different by my debug codes):

-----
0xc8194de0: tag ufs, type VREG, usecount 1, writecount 0, refcount 9, flags (VV_SYSTEM|VV_OBJBUF), lock type snplk2: SHARED (count 1) with 3 pending @ kern/vfs_vnops.c:529 by vop_stdlock (thread 0xc809a000 (pid 52934))
	ino 187, on dev ad0s1a (4, 12)
0xc777b818: tag ufs, type VREG, usecount 1, writecount 0, refcount 9, flags (VV_SYSTEM), lock type snplk2: SHARED (count 1) with 3 pending @ kern/vfs_vnops.c:529 by vop_stdlock (thread 0xc809a000 (pid 52934))
	ino 178, on dev ad0s1a (4, 12)
-----

It looks there is a problem around removing a snapshot with opened
file descriptor.  But I'm not sure why there is no problem when I have
no another snapshot in that filesystem.


Is there any hints to track this down more?  Any comments appreciated.


-- 
Jun Kuriyama <kuriyama at imgsrc.co.jp> // IMG SRC, Inc.
             <kuriyama at FreeBSD.org> // FreeBSD Project


More information about the freebsd-current mailing list