I'm having a locking problem when attempting to use elm-2.5.1-1.i386.rpm
(Red Hat 6.1) to read a spool file mounted via NFS. It looks like elm is
trying to use flock to make the lock, which is probably wrong:
Cannot flock folder "/var/spool/mail/jrandom"! [No locks available]
The kernel syslogs:
Nov 30 14:37:48 grun kernel: lockd: failed to monitor xxx.xx.x.xx
(IP address of NFS server) -^^^^^^^^^^^
I've downloaded elm-2.5.2 source from ftp.virginia.edu and attempted to
build it, but I noticed that the Configure script doesn't seem to be
able to see fcntl locking support under RH 6.1. Here's that bit:
Configure script looks for F_SETLK definition in
/usr/include/sys/fcntl.h (file present on RH 6.1)
/usr/include/sys/file.h (file present on RH 6.1)
/usr/include/fcntl.h (file present on RH 6.1)
Under Red Hat 5.2, F_SETLK was defined in /usr/include/fcntlbits.h, but
it's now defined in /usr/include/bits/fcntl.h instead, and the old file
has been removed.
I patched Configure so that it found F_SETLK, but I still get the same
error once the program is compiled. I told Configure to compile with
support for fcntl and dot-locking. Was not prompted for flock at all;
saw "flock() found." then "flock locking not available" in Configure.
I can reproduce the problem in Magic mode (-M) when reading any mail
folder with (elm -M -f somemailfile) on a NFS mounted directory. If
I move the same file to a local directory and try the same command,
it works correctly.
I'm open to suggestions to make this work -- I've got a lot of people
using elm-2.4 to read mail via NFS with Red Hat 5.2 successfully, and
I'd like to upgrade them to RH 6.1. Thanks.
IMA System Administrator
University of Minnesota
--- Configure Tue Nov 30 13:34:07 1999
+++ Configure.orig Tue Nov 30 11:37:15 1999
@@ -2619,9 +2619,6 @@
elif $contains F_SETLK /usr/include/fcntlbits.h >/dev/null 2>&1; then
echo 'F_SETLK found, fcntl locking available'
-elif $contains F_SETLK /usr/include/bits/fcntl.h >/dev/null 2>&1; then
- echo 'F_SETLK found, fcntl locking available'
echo 'F_SETLK not found, fcntl locking not available'
Communicated with Bill Pemberton (elm maintainer, flash)
and did further investigation. It appears that NFS locking had at
some point been turned off on my clients; with statd/lockd running on
the clients properly elm works. That fixes my main problem.
He also told me that elm-2.5.3 (unreleased) has included a fix similar
to the one I included above for the Configure script in 2.5.2. I did
not look at the SRPM to see if the change is also there.
Locking seems to have changed from RH 5.2 (dot-locks only) to fcntl
only -- if there's no reason not to, it might be good to configure
both dot-locking and fcntl support.
The goal since Red Hat 5.2 has been to use *only* fcntl locking in MTA/MUA.
elm-2.5.3 is in Raw Hide and will be in Red Hat 6.2, and contains a patch
identical to yours above.