On Wed, 2006-08-02 at 17:41 -0400, Sven Willenberger wrote: > On Wed, 2006-08-02 at 10:25 -0700, Matthew Dillon wrote: > > Please try this patch and tell me if it works. I think we have an issue > > when one process holds an exclusive lock while 2 or more processes are > > trying to get a shared lock, or vise-versa. > > > > -Matt > > > > Index: kern_lockf.c > > =================================================================== > > RCS file: /cvs/src/sys/kern/kern_lockf.c,v > > retrieving revision 1.32 > > diff -u -r1.32 kern_lockf.c > > --- kern_lockf.c 25 Jul 2006 20:01:50 -0000 1.32 > > +++ kern_lockf.c 2 Aug 2006 17:23:56 -0000 > > @@ -772,8 +772,10 @@ > > TAILQ_REMOVE(&lock->lf_blocked, range, lf_link); > > range->lf_flags = 1; > > wakeup(range); > > +#if 0 > > if (range->lf_start >= start && range->lf_end <= end) > > break; > > +#endif > > } > > } > > > > I have applied the patch (and recompiled) and am letting the system run > full steam right now (including the milter, etc); the initial results > look promising as it has not exhibited the aberrant behavior as of yet. > I will post a followup after letting this run all night (assuming it > does so) or after it fails (which hopefully won't happen). > > Sven >
As a followup, the server has been running without a hitch now for 18 hours so it would appear that the above patch has fixed the situation, unless some other more rare situation/condition crops up that would cause this lock. Sven
