in recent 7-STABLE: VOP_WRITE...is not exclusive locked but
should be
Kostik Belousov
kostikbel at gmail.com
Thu Mar 19 09:02:57 PDT 2009
On Thu, Mar 19, 2009 at 10:01:44AM -0400, John Baldwin wrote:
> On Thursday 19 March 2009 8:05:34 am Tim Chase wrote:
> > Hello,
> >
> > I have a system that had been running quite well with an oldish 7-STABLE
> > (from around August 7, 2008) but has started deadlocking within the past
> > week or so.
> >
> > I updated the kernel to a newer 7-STABLE (Mar 15, 2009) and enabled
> > INVARIANTS, INVARIANT_SUPPORT, WITNESS, DEBUG_LOCKS DEBUG_VFS_LOCKS and
> > DIAGNOSTIC and the message indicated in the subject line has now appeared
> > 3 times as shown below. Is this something to be terribly concerned about?
> > Is there anything I can to to further track down the cause? Since the
> > system is a production mail server, I have it set to not drop into DDB
> > when this happens.
> >
> > The machine is a 4-core Xeon X5450 with 8G of RAM running FreeBSD
> > amd64 and in userland it's pretty much just cyrus imapd and apache/php.
> > The file systems are all ZFS on a bunch of SAS drives connected to a
> > LSI Logic 1068 controller.
> >
> > As to the deadlock that started this exercise, if the machine follows its
> > recent pattern, that should happen within the next 2-4 hours.
>
> Err, the vn_write() routine should be using an exclusive vnode lock:
>
> vn_write()
> {
>
> ...
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
> if ((flags & FOF_OFFSET) == 0)
> uio->uio_offset = fp->f_offset;
> ioflag |= sequential_heuristic(uio, fp);
> #ifdef MAC
> error = mac_check_vnode_write(active_cred, fp->f_cred, vp);
> if (error == 0)
> #endif
> error = VOP_WRITE(vp, uio, ioflag, fp->f_cred);
> ...
> }
>
> Can you check your /sys/kern/vfs_vnops.c and verify that LK_EXCLUSIVE is
> present in your vn_write() routine? If so, then perhaps run memtest?
Note that this happens on the ZFS. Might be, ZFS unlocks the vnode and
then relocks it with some invalid flags ?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20090319/3564ce94/attachment.pgp
More information about the freebsd-stable
mailing list