directory listing hangs in "ufs" state

Alan Cox alan.l.cox at gmail.com
Wed Dec 14 18:53:26 UTC 2011


On Wed, Dec 14, 2011 at 12:22 PM, Jeremy Chadwick
<freebsd at jdc.parodius.com>wrote:

> On Wed, Dec 14, 2011 at 10:11:47PM +0400, Andrey Zonov wrote:
> > Hi Jeremy,
> >
> > This is not hardware problem, I've already checked that. I also ran
> > fsck today and got no errors.
> >
> > After some more exploration of how mongodb works, I found that then
> > listing hangs, one of mongodb thread is in "biowr" state for a long
> > time. It periodically calls msync(MS_SYNC) accordingly to ktrace
> > out.
> >
> > If I'll remove msync() calls from mongodb, how often data will be
> > sync by OS?
> >
> > --
> > Andrey Zonov
> >
> > On 14.12.2011 2:15, Jeremy Chadwick wrote:
> > >On Wed, Dec 14, 2011 at 01:11:19AM +0400, Andrey Zonov wrote:
> > >>
> > >>Have you any ideas what is going on? or how to catch the problem?
> > >
> > >Assuming this isn't a file on the root filesystem, try booting the
> > >machine in single-user mode and using "fsck -f" on the filesystem in
> > >question.
> > >
> > >Can you verify there's no problems with the disk this file lives on as
> > >well (smartctl -a /dev/disk)?  I'm doubting this is the problem, but
> > >thought I'd mention it.
>
> I have no real answer, I'm sorry.  msync(2) indicates it's effectively
> deprecated (see BUGS).  It looks like this is effectively a mmap-version
> of fsync(2).
>
>
Yikes, I just looked at this man page.  I'm afraid that the text in the
BUGS section is highly misleading.  The MS_INVALIDATE option should be
obsolete for the reason given there.  Under a strict reading of the
applicable standard, FreeBSD could implement this option as a NOP.
However, we treat it something like madvise(MADV_DONTNEED|FREE).  In
contrast, MS_SYNC is definitely not obsolete.

Alan

P.S. If someone wants to take a crack at fixing this man page, contact me
off list.


More information about the freebsd-stable mailing list