Re: [Exim] temporarily rejected RCPT -> fixed itself?

Top Page
Delete this message
Reply to this message
Author: Marilyn Davis
Date:  
To: Sander Smeenk
CC: exim-users
Subject: Re: [Exim] temporarily rejected RCPT -> fixed itself?
On Mon, 17 Nov 2003, Sander Smeenk wrote:

Thank you Sander,

> Quoting Marilyn Davis (marilyn@???):
>
> > 2003-11-16 11:12:59 1ALSKR-0000jB-MO SA: calling spamc -s 272384
> > 2003-11-16 11:12:59 1ALSKR-0000jB-MO SA: PANIC: Unexpected error on
> > header line write, file sa-exim.c, line 834: Broken pipe
> > So, what happened? If it helps, I've attached my configure file.
>
> I don't want to be rude or anything, but didn't the above PANIC line
> tell you anything? Especially, it following directly after sa-exim


Well, I don't know what to think of it.

> telling it's about to call spamc? Could it perhaps be a problem with
> spamassassin's spamd not accepting the connection from spamc?
>
> I think it might well be.


I don't think so. I just tested by killing spamd and sending a message.
The log entry looks like:

2003-11-17 14:25:37 1ALroP-00039T-5U SA: Debug: SAEximRunCond expand returned: '1'
2003-11-17 14:25:37 1ALroP-00039T-5U SA: Debug: check succeeded, running spamc
2003-11-17 14:25:37 1ALroP-00039T-5U SA: calling spamc -s 272384
2003-11-17 14:25:40 1ALroP-00039T-5U SA: Action: SA didn't successfully run against message. Is spamd running?
2003-11-17 14:25:40 1ALroP-00039T-5U <= marilyn@??? U=marilyn P=local-esmtp S=640 id=Pine.LNX.4.44.0311171425330.5880-100000@???
2003-11-17 14:25:40 1ALroP-00039T-5U => marilyn <marilyn@???> R=localuser T=local_delivery
2003-11-17 14:25:40 1ALroP-00039T-5U Completed

So, that makes it run fine. It just doesn't get checked for spam content.

I don't know what the PANIC error is about. What broke the pipe? I
don't think the messages that were temporarily rejected reached as far
as the sa-exim code. There were no PANIC's. I don't know why the
first one that made it past RCPT hit a PANIC, but maybe it's a clue of
some sort.

So, the sa-exim code is (with >> at line 834:

    /* Ok, we're ready for spewing the mail at spamc */
    /* First we need to get the header lines from exim, and then we can read
       the body from fd */
    hl=header_list;
    while (hl != NULL)
    {
    /* type '*' means the header is internal, don't print it */
    if (hl->type == '*')
    {
        hl=hl->next;
        continue;
    }


>>    ret=write(writefd[1],hl->text,strlen(hl->text));

    CHECKERR(ret,"header line write",__LINE__);


    hl=hl->next;
    }
    ret=write(writefd[1],"\n",1);
    CHECKERR(ret,"header separation write",__LINE__);


So. I still don't know.

Thank you again.

Marilyn