Re: Pre2.0-8 & Sendmail

Andrew Walker (andy@lysaker.kvaerner.no)
Wed, 29 May 1996 08:10:09 +0200 (MET DST)


John Vozza wrote:
>
>
> I just upgraded from 1.3.100 to Pre2.0-8 and it appears that sendmail has
> broke. Whenever anyone attemps to sendmail from this system or incomming
> mail from the "outside" world appears, I get the following error message:
>
> May 28 08:05:31 mike sendmail[217]: NOQUEUE: SYSERR(root): cannot
> lockf(/etc/aliases.dir, fd=6, type=1, omode=37777777777, euid=0): Device
> or resource busy
>
> Rebooting back into 1.3.100 corrects the problem so I belive all my
> permissions and things are fine. I would really like to check out the new
> PPP fixes, but can't untill I get this problem fixed.
>
> BTW, someone on irc thought it might be the flock problem, but I do run
> the 5.3.12 & 4.7.6 libc's. (Havent seen a flock since I upgraded to those
> libs.)
>
> This is the version of send mail that I run;
>
> sendmail[108]: starting daemon (8.6.12): SMTP+queueing@00:15:00
>

I knew this would happen :-(

Recompile your sendmail to lock with flock() (#define HASFLOCK I think).
In newer kernels I disallowed mixing BSD (flock) and SYSV(lockf)/POSIX(fcntl)
locks on a file. The GDBM routines use flock() to lock the alias database,
and then sendmail tries to lock the same files with lockf() - hence the
problem.

The reason for disallowing mixed locks is to avoid all sorts of nasty
deadlocks that *might* otherwise occur.

-Andy

-- 
Andy Walker                              Kvaerner Engineering a.s.
Andrew.Walker@lysaker.kvaerner.no        P.O. Box 222, N-1324 Lysaker, Norway

......if the answer isn't violence, neither is your silence......