softdep_waitidle: Failed to flush worklist

Eric Anderson anderson at freebsd.org
Tue May 22 13:07:55 UTC 2007


On 05/21/07 12:12, Attila Nagy wrote:
> Hello,
> 
> I have some read only NFS servers, which share a virtual IP (with CARP) 
> to provide fault resilience. One of them is the
> master server, on which I occasionally modify the NFS share's content.
> To make this possible, I have a real UFS file system, on which I have a 
> smaller file. This holds the file system image, which I rsync to the 
> other servers, if needed.
> 
> The setup:
> # mdconfig -lu 0
> md0     vnode      19G  /data/nfsimg
> # mount | grep nfs
> /dev/md0 on /nfs (ufs, NFS exported, local, soft-updates)
> 
> The modify process is like this:
> #mount -o rw -u /nfs
> [modify content]
> #mount -o ro -u /nfs
> [rsync /data/nfsimg to the other machines]
> 
> This has worked like a charm until now. Since I've upgraded the OS to 
> RELENG_6 as of today, I get the following
> line into the syslog everytime I modify something on /nfs and want to do 
> a read only remount:
> softdep_waitidle: Failed to flush worklist for 0xffffff0054e00630
> and the remount command (mount -o ro -u /nfs) fails with:
> mount: /dev/md0: Device busy
> 
> Before the upgrade (RELENG_6 from Sep 29  2006), I couldn't notice this 
> behaviour, so something must have changed in the last 3/4 year. :)
> 
> Of course I can turn softupdates off, but it would be interesting to 
> know what causes this difference...
> 


I used to see that on some filesystems (2TB) when I would do a large 
number of writes, then immediately mount -u -ro like you are doing.  I 
dodged it by putting a sleep and sync between the finish of my writes, 
and the mount update (I think it was 30 seconds).  I never tracked it 
down to anything, and honestly forgot until now that I did that.


Eric



More information about the freebsd-fs mailing list