Re: [exim] exim child dies when calling out

Startseite
Nachricht löschen
Nachricht beantworten
Autor: Franz-Werner Gergen
Datum:  
To: exim-users
Betreff: Re: [exim] exim child dies when calling out
Hello,

the call out is done by the first exim instance because it has to accept
the incoming mail.

    outside -> exim1
                 \> child handling the incoming connection
                      \acl> -> calling to mail server of relayed domain
                      \transport> -> pipe to spamd/amavisd -> exim2


It is a problem of exim 4.82. The child daemon dies using the minimal
configuration of Heiko Schlittermann and "sending" an email to
nobody@??? (this is not a problem calling out to mail.is.mpg.de). I
think, the call out code was changed so that it uses the routers and
transports of the configuration file. When I'm using the configuration file

spool_directory = "/var/spool/exim_2525"
pid_file_path = "/var/spool/exim_2525/exim.pid"
log_file_path = /var/log/exim/%s_2525log
daemon_smtp_port = 2525

     acl_smtp_rcpt = accept verify = recipient/callout


     begin routers


         dns:
             driver = dnslookup
             transport = vscan
             more = no


     begin transports


         vscan:
            driver = smtp
            port = 10024
            hosts_avoid_esmtp = localhost
            hosts = localhost
            hosts_override
            allow_localhost


all recipients are accepted. In the debugging output of the calling out
routine I see

...
17:09:46 30319 check verify = recipient/callout
17:09:46 30319 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
17:09:46 30319 Verifying info@???
17:09:46 30319 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
17:09:46 30319 Considering info@???
17:09:46 30319 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
17:09:46 30319 routing info@???
17:09:46 30319 --------> dns router <--------
17:09:46 30319 local_part=info domain=exim.org
17:09:46 30319 calling dns router
17:09:46 30319 dns router called for info@???
17:09:46 30319   domain = exim.org
17:09:47 30319 DNS lookup of exim.org (MX) succeeded
17:09:47 30319 DNS lookup of tahini.csx.cam.ac.uk (A) succeeded
17:09:47 30319 DNS lookup of boom.graemef.net (A) succeeded
17:09:47 30319 Actual local interface address is 127.0.0.1 (lo)
17:09:47 30319 Actual local interface address is 127.0.0.2 (lo)
17:09:47 30319 Actual local interface address is 134.105.242.11 (eth0)
17:09:47 30319 fully qualified name = exim.org
17:09:47 30319 host_find_bydns yield = HOST_FOUND (2); returned hosts:
17:09:47 30319   tahini.csx.cam.ac.uk 131.111.8.192 MX=5
17:09:47 30319   boom.graemef.net 82.113.154.29 MX=15
17:09:47 30319 set transport vscan
17:09:47 30319 queued for vscan transport: local_part = info
17:09:47 30319 domain = exim.org
17:09:47 30319   errors_to=NULL
17:09:47 30319   domain_data=NULL localpart_data=NULL
17:09:47 30319 routed by dns router
17:09:47 30319   envelope to: info@???
17:09:47 30319   transport: vscan
17:09:47 30319   host tahini.csx.cam.ac.uk [131.111.8.192] MX=5
17:09:47 30319   host boom.graemef.net [82.113.154.29] MX=15
17:09:47 30319 DNS lookup of localhost (A) succeeded
17:09:47 30319 local host found for non-MX address
17:09:47 30319 fully qualified name = localhost
17:09:47 30319 localhost 127.0.0.1 mx=-1 sort=-82
17:09:47 30319 Attempting full verification using callout
17:09:47 30319 locking /var/spool/exim_2525/db/callout.lockfile
17:09:47 30319 locked /var/spool/exim_2525/db/callout.lockfile
17:09:47 30319 EXIM_DBOPEN(/var/spool/exim_2525/db/callout)
17:09:47 30319 returned from EXIM_DBOPEN
17:09:47 30319 opened hints database /var/spool/exim_2525/db/callout: 
flags=O_RDWR
17:09:47 30319 dbfn_read: key=exim.org
17:09:47 30319 callout cache: found domain record
17:09:47 30319 dbfn_read: key=info@???
17:09:47 30319 callout cache: no address record found
17:09:47 30319 interface=NULL port=10024
17:09:47 30319 Connecting to localhost [127.0.0.1]:10024 ... connected
17:09:47 30319 expanding: $primary_hostname
17:09:47 30319    result: smtp2.is.mpg.de
17:09:47 30319 waiting for data on socket
17:09:47 30319 read response data: size=49
17:09:47 30319   SMTP<< 220 [127.0.0.1] ESMTP amavisd-new service ready
17:09:47 30319 gethostbyname looked up these IP addresses:
17:09:47 30319   name=localhost address=127.0.0.1
17:09:47 30319 127.0.0.1 in hosts_avoid_esmtp? yes (matched "localhost")
17:09:47 30319 not sending EHLO (host matches hosts_avoid_esmtp)
17:09:47 30319   SMTP>> HELO smtp2.is.mpg.de
17:09:47 30319 waiting for data on socket
17:09:47 30319 read response data: size=17
17:09:47 30319   SMTP<< 250 [127.0.0.1]
17:09:47 30319 127.0.0.1 in hosts_require_tls? no (option unset)
17:09:47 30319 127.0.0.1 in hosts_require_auth? no (option unset)
17:09:47 30319   SMTP>> MAIL FROM:<>
17:09:47 30319 waiting for data on socket
17:09:47 30319 read response data: size=24
17:09:47 30319   SMTP<< 250 2.1.0 Sender <> OK
17:09:47 30319   SMTP>> RCPT TO:<info@???>
17:09:47 30319 waiting for data on socket
17:09:47 30319 read response data: size=40
17:09:47 30319   SMTP<< 250 2.1.5 Recipient <info@???> OK
17:09:47 30319   SMTP>> QUIT


that the call out is done to the amavis daemon at localhost (that is
accepting all recipients). The remote mailers are resolved correctly
(tahini.csx.cam.ac.uk, boom.graemef.net) but the call out is done using
the vscan transport. I don't know thats happening when the the transport
is a pipe. There was no core dumped so that I don't know in which
routine the signal was caught. Running exim in debugging mode there are
syslog entries like
exim[24106] general protection ip:42a645 sp:7fffb6e31030 error:0 in
exim-4.82-3[400000+bf000]

running in normal daemon mode there are
exim[16121]: segfault at 1 ip 000000000042a645 sp 00007fff23862d10 error
4 in exim-4.82-3[400000+bf000]
entries.

Best regards,
Franz-Werner Gergen.


-- 
Franz-Werner Gergen
Max-Planck-Institut fuer Intelligente Systeme, IT Gruppe
Heisenbergstr. 3    70569 Stuttgart
Tel: 0711-689-1861  Fax: 0711-689-1088  Email: gergen@???