<<<No Message Collected>>> [Was Re: SYSERR(root): readqf: cannot open ./df*]

Spicer, Kevin Kevin.Spicer at BMRB.CO.UK
Tue Dec 17 15:30:52 GMT 2002

> I don't think there is supposed to be any way that you'd have two
> sendmail precesses running against the queue ID on the input side of
> sendmail (i.e., receiving a message from a remote MTA). But I believe
> you can can more than one process dealing with the same message ID on
> the delivery side. The question is whether this occurs before
> MailScanner sees the message (which might indicate a sendmail mail
> problem) or when MailScanner has finished with the message. Since I
> don't know the hostname of this system it isn't clear to me which side
> it occurs on. Does the maillog indicate that Mailscanner saw 
> the message
> ID before or after the sendmail error?

I've done some more investigation (thinking aloud...)

The messages that generate the error in the logs (and the No Message Collected in the body) also generate two logs saying they have been sent on to our exchange server (should only be one).  Each of these logs is timestamped at (or within a few seconds of) the same time, but has a different process ID.  Both of these sendmail processes have a parent process ID of 1 (ie. they are not children of other sendmail processes).  A ps -elf | grep sendmail normally shows that there are only two parent sendmail processes (in and out), unless you catch it during one of these rogue delivery attempts (took a ps; sleep loop to find this).  Both of the suspect sendmail processes have a current time stamp, so they are not processess which have been left hanging around.  Doing an lsof every second (loop again) until an error is noticed shows that the sendmail process which creates the error is trying to deliver mail from mqueue.in not mqueue!!!!!  I think this is the problem(!) but I can't find what might be causing this (and why it only affects mail coming into our domains).

I've also seen console messages like the following during my hours trying to track this down...
/bin/cat: /var/spool/mqueue.in/dfgBHF4jNF010284: No such file or directory

I originally thought this was unrelated - but I now suspect that mailscanner and sendmail are racing each other to grab messages from the mqueue.in queue.  I'm guessing that for each mail recieved one of four things happens...
1) Mailscanner sees the mail quickly and processes it normally
2) Sendmail sees the mail quickly and delivers it without being scanned
3) Both see it around the same time, mailscanner trys to process and sendmail trys to deliver, but mailscanner picks up the body before sendmail causing sendmail to replace the body with '<<<No Message Collected>>>' and log an error.  The outgoing sendmail alo attempts to deliver the message (after scanning) but it is silently discarded by the Exchange server which incoming mail is forwarded to [Big guess there!].
4) Both see it around the same time, mailscanner trys to process and sendmail trys to deliver, but sendmail gets the body first causing mailscanner to log an error to the console when it trys to cat the file.

This is all conjecture though - does anyone else have any theorys, or ideas what could be causing this behaviour? 

BMRB International
http://www.bmrb.co.uk +44 (0)20 8566 5000

This message (and any attachment) is intended only for the recipient and may contain confidential and/or privileged material. If you have received this in error, please contact the sender and delete this message immediately. Disclosure, copying or other action taken in respect of this email or in reliance on it is prohibited. BMRB International Limited accepts no liability in relation to any personal emails, or content of any email which does not directly relate to our business.

More information about the MailScanner mailing list