procmail
[Top] [All Lists]

Re: a stutter in my From_ lines

1997-07-29 14:09:00
Skip Montanaro <skip(_at_)automatrix(_dot_)com> writes:
I've encountered the insidious stuttering FFFrom_ lines.  I did a little
poking around in the docs and the archives of the mailing list.  I found
many references to the problem in the archives and since I don't use NFS was
able to (I think) work around the problem by defining NO_NFS_ATIME_HACK in
config.h.  That should hold me for awhile, but I'd really like to figure out
what the proper mailbox locking method I should use is.  Is there a simple
"recipe" for this?  Here's my configuration:

Defining NO_NFS_ATIME_HACK will just keep the doubled 'F' from
occurring.  It's won't stop your mailbox from being hosed by
simultaneous accesses.


   BSD/OS 2.0.1 and BSD/OS 2.1
   procmail 3.10
   sendmail 8.8.5

You should probably upgrade to procmail 3.11pre7 to pick up the random
smattering of fixes it contains, but that's not the source of your
problems.


Coincidentally, I happen to be building a beta version of XEmacs.  I noticed
that configure reported that movemail will use flock.

config.h has the following lines:

/*#define NO_fcntl_LOCK        /* uncomment any of these three if you */
/*#define NO_lockf_LOCK        /* definitely do not want procmail to make   */
/*#define NO_flock_LOCK        /* use of those kernel-locking methods */

Is the goal to eliminate as many locking options as possible?

Those defines are so you can override procmail's configure process if
you know something doesn't work with one of them.  The canonical
example of this is if you use the broken 'mailtool' that comes with
OpenWindows.


I'm not sure
what the correct approach is.  It would appear from the man page that my
systems have both flock and fcntl locking, but not lockf.  I imagine the
build process detects the absence of lockf, but should I define
NO_fcntl_LOCK?

No.  Procmail apparently decided that lockf() didn't work with fcntl()
(it first tries just fcntl(), then it adds on lockf(), then flock(),
dropping any that cause it not to work).  You should reconfigure
movemail to either a) use fcntl() locking; or b) use dotlocking.  The
version of movemail that comes with GNU emacs V19 doesn't support the
former, though someone may have added it to the one that comes with
Xemacs.  If not you should be able to do (b) by putting

        #undef MAIL_USE_LOCKF

somewhere in movemail.c (after config.h is #included, but before the
system headers are).  There should be a large comment at the top of the
file describing how to tweak movemail's locking strategy.


Philip Guenther

<Prev in Thread] Current Thread [Next in Thread>