"Gary B." <garyb(_at_)mhpcc(_dot_)edu> writes:
System: IBM AIX 4.2.1 running sendmail v8.8.7 and procmail v3.11pre7
Procmail is installed as the delivery agent specified by Mlocal
in /etc/sendmail.cf and gets invoked as: procmail -Y -a $h -d $u
Problem:
Yesterday I was called to examine a stuck queue on our sendmail server.
The machine was unable process and deliver messages to our local users.
After much investigation, I finally isolated the problem to procmail
"hanging" whenever attempting to write (append) to one particular user's
mailbox.
As mentioned, mail delivery to other users was also affected. This
happened whenever a message recipient also happened to belong to the same
alias as the suspected user. In other words, procmail would deliver a
message to a group of recipients belonging to the same alias just fine
until it reached the address of the suspected user and then it would hang
indefinitely, unable to deliver the message to the "bad" mailbox as well
as all the remaining recipients. Sendmail could still send and receive
remote connections though.
Ultimately, I was able to get the queue working again by stopping
sendmail, moving the suspected mailbox to another name, and then
restarting sendmail. I did not examine the user's mailbox for possible
corruption for ethical reasons.
I once saw this on our Solaris 2.5 server here, where there apparently
was an orphaned kernel lock on the mailbox (i.e., a kernel lock with no
process holding it, such that it would never be removed). Copying the
mailbox to another location, then deleting the locked one and copying
back solved the problem.
If this happens more than once a blue moon, then I would suggest either
a) complain to your OS vendor, b) upgrade the OS, or c) compile procmail
without kernel locking.
BTW: procmail doesn't care if your mailbox is corrupt. It just locks it
and writes to the end.
Philip Guenther