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@???