[Exim] 3.22 Segmentation Fault

Top Page
Delete this message
Reply to this message
Author: Oliver Cook
Date:  
To: exim-users
Subject: [Exim] 3.22 Segmentation Fault
While playing with ignore_target_hosts I managed
to get Exim 3.22 to seg fault. Having recompiled
with debugging symbols I ran it through gdb and
got the following output. There was no core dumped.

The ignore_target_hosts was specified in the final
router in the format:

ignore_target_hosts = mailspool.clara.net:mail2.clara.net

mailspool.clara.net is a DNS round-robin comprising
three hosts. Mail2.clara.net is just a single host.

The output from gdb is as follows:

su-2.04# gdb build-FreeBSD-i386/exim
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-unknown-freebsd"...
(gdb) r -C /usr/exim/configure.ollie -d9 -bt ollie@???
Starting program: /usr/local/src/exim/exim-3.22/build-FreeBSD-i386/exim -C /usr/exim/configure.ollie -d9 -bt ollie@???
Exim version 3.22 debug level 9 uid=0 gid=0
probably Berkeley DB version 1.8x (native mode)
Caller is an admin user
Caller is a trusted user
originator: uid=0 gid=0 login=root name=System Administrator
sender address = root@???
Address testing: uid=0 gid=0 euid=5000 egid=5000
>>>>>>>>>>>>>>>>>>>>>>>>

Testing ollie@???
search_open: cdb "/usr/exim/domains.cdb"
search_find: file="/usr/exim/domains.cdb"
key="ollie.clara.net" partial=-1
LRU list:
0/usr/exim/domains.cdb
End
internal_search_find: file="/usr/exim/domains.cdb"
type=cdb key="ollie.clara.net"
file lookup required for ollie.clara.net
in /usr/exim/domains.cdb
lookup failed
ollie.clara.net in local_domains? no (end of list)
address ollie@???
local_part=ollie domain=ollie.clara.net
domain is not local
>>>>>>>>>>>>>>>>>>>>>>>>

routing ollie@???, domain ollie.clara.net
corporate_domains router called for ollie@???
route_domain = ollie.clara.net
after handling route_lists items, matched = 0
corporate_domains router: cdb key=ollie.clara.net
file="/usr/exim/corporate.cdb"
search_open: cdb "/usr/exim/corporate.cdb"
search_find: file="/usr/exim/corporate.cdb"
key="ollie.clara.net" partial=-1
LRU list:
0/usr/exim/corporate.cdb
0/usr/exim/domains.cdb
End
internal_search_find: file="/usr/exim/corporate.cdb"
type=cdb key="ollie.clara.net"
file lookup required for ollie.clara.net
in /usr/exim/corporate.cdb
lookup failed
search_find failed:
corporate_domains router declined
lookuphost router called for ollie@???
dns lookup: route_domain = ollie.clara.net
DNS lookup of ollie.clara.net (MX) succeeded
Actual local interface address is 195.8.69.15 (tx0)
Actual local interface address is 195.8.69.133 (tx0)
Actual local interface address is 195.8.69.134 (tx0)
Actual local interface address is 127.0.0.1 (lo0)
local host found for non-MX address
mailspool.clara.net 195.8.69.133 mx=-1
mailspool.clara.net 195.8.69.83 mx=-1
mailspool.clara.net 195.8.69.183 mx=-1
host in ? yes (mailspool.clara.net)
ignored host mailspool.clara.net [195.8.69.183]
local host found for non-MX address
mailspool.clara.net 195.8.69.183 mx=-1
mailspool.clara.net 195.8.69.133 mx=-1
mailspool.clara.net 195.8.69.83 mx=-1
host in ? yes (mailspool.clara.net)
ignored host mailspool.clara.net [195.8.69.133]
local host found for non-MX address
mailspool.clara.net 195.8.69.133 mx=-1
mailspool.clara.net 195.8.69.83 mx=-1
mailspool.clara.net 195.8.69.183 mx=-1
host in ? yes (mailspool.clara.net)
ignored host mailspool.clara.net [195.8.69.83]
local host found for non-MX address
mailspool.clara.net 195.8.69.83 mx=-1
mailspool.clara.net 195.8.69.183 mx=-1
mailspool.clara.net 195.8.69.133 mx=-1
mail2.clara.net 213.253.16.103 mx=-1
host in ? yes (mail2.clara.net)
ignored host mailspool.clara.net [213.253.16.103]

Program received signal SIGSEGV, Segmentation fault.
0x80692aa in host_find_bydns (host=0xbfbfea9c, ignore_target_hosts=0x80c4570 "mailspool.clara.net:mail2.clara.net", mx_only=0, a_only=0,
    qualify_single=1, search_parents=0, fully_qualified_name=0xbfbfe990, removed=0xbfbfe98c) at host.c:1797
1797            *h = *(h->next);          /* and reprocess it. */
(gdb)                                                                                                             


I had a poke around line 1797 in host.c but was in a bit over my head!
Exim does not SEGV when only the roundrobin is specified in the command,
but only when both it and mail2.clara.net are specified.

Yours,

Ollie

- 
Oliver Cook    Systems Administrator, ClaraNET
ollie@???      020 7903 3000 ext. 291