[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Scheduler errors




This is described in doc/design/zmog.doc as follows:

As mentioned, the second byte of most fields are used for concurrency
control and status indication.  This tag byte can contain several values
that indicate current or previous activity.  The fields where this is
relevant are the destination (recipient) address and diagnostic fields.
The tag values are defined in the `mail.h' file mentioned previously, as
follows:

     #define _CFTAG_NORMAL ' ' /* what the router sets it to be */
     #define _CFTAG_LOCK   '~' /* that line is being processed, lock it */
     #define _CFTAG_OK     '+' /* positive outcome of processing */
     #define _CFTAG_NOTOK  '-' /* something went wrong */
     #define _CFTAG_DEFER  _CFTAG_NORMAL /* try again later */

It would seem that if the system crashes, or you kill zmailer while
transport agents are active it might leave these flags in an
inconsistent state.  Looking at the code that implements this (which I
just happened to be looking at when I saw your message), I would guess
that this message is ok, so long as you only get them when zmailer
first starts up.

For lines where you see "expected '~' found '+'" it probably means that
the transport agent finished delivering the message after the scheduler
shutdown, and as a result the control/message file didn't get deleted,
so the message will probably get delivered twice.

Note that this is only my guess from a quick look at the code.

> 
> Can someone shed some light on the meaning of the log entries below.  
> They appear on occasion in my schedluer log (usually after I have 
> shutdown and restarted zmailer)
> 
> Thanks ..
> 
> Marco
> 
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found ' '
> lockaddr: expected '~' found ' '
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found ' '
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found ' '
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found ' '
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found ' '
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> lockaddr: expected '~' found '+'
> 
> 
>