[Exim] DBM Wierdness.

Top Page
Delete this message
Reply to this message
Author: Warren Vanichuk
Date:  
To: 'exim-users@exim.org'
Subject: [Exim] DBM Wierdness.
Greetings.

We have compiled Exim 3.12 on a Solaris 2.6 box using GCC 2.8.1 and
using the Berkeley DB libraries v2.7.7

I am having some extreme wierdness when trying to create the DB files
in Perl for Exim, and I am hoping that somebody can help me.

I have two entries in the DBM file, one for "foo@???" and the
other for "bar@???" I originally created these in a text file,
then used exim_dbmbuild on it. If I use the following perl mantra, I
get the appropriate keys and info :

perl -we 'use BerkeleyDB; tie( %a, "BerkeleyDB::Hash", -Filename =>
"./virtusers.db"); foreach $b(keys %a) { print "--$b-- --$a{$b}\n";
}'

I get the foo@??? and bar@??? entries, without any funky
characters, and all the information is valid. Now, if I change that
perl string to do inserts into the DBM file :

perl -we 'use BerkeleyDB; tie( %a, "BerkeleyDB::Hash", -Filename =>
"./virtusers.db"); $b="testing1000\@look.ca"; $c="homedir=/tmp
uid=1000 gid=6 quota=20M"; $a{$b} = $c; untie( %a );'

Now, using strings and the previous perl command line, I can verify
that there is now an entry in the virtusers.db file for
testing1000@???.. However, when I do :

[root@photon][/services/mail/exim/etc] # ../bin/exim -bt
testing1000@???
testing1000@??? is undeliverable:
unknown local-part "testing1000" in domain "look.ca"

I am ripping my hair out.. I can retrieve any information from the
DBM file, including the new key I inserted, but Exim doesn't want to
see it in the DBM file. Help??

A -d9 output follows :

[root@photon][/services/mail/exim/etc] # ../bin/exim -d9 -bt
testing1000@???
Exim version 3.12 debug level 9 uid=0 gid=1
Berkeley DB: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99)
photon.idirect.com in local_domains? no (end of list)
Caller is an admin user
Caller is a trusted user
sender address = root@???
Address testing: uid=0 gid=1 euid=55 egid=55
>>>>>>>>>>>>>>>>>>>>>>>>

Testing testing1000@???
look.ca in percent_hack_domains? no (end of list)
address testing1000@???
local_part=testing1000 domain=look.ca
domain is local
>>>>>>>>>>>>>>>>>>>>>>>>

directing testing1000@???
calling fail_aliases director
fail_aliases director: dbm key=testing1000@???
file="/services/mail/exim/etc/fail_aliases.db"
search_open: dbm "/services/mail/exim/etc/fail_aliases.db"
search_find: file="/services/mail/exim/etc/fail_aliases.db"
key="testing1000@???" partial=-1
LRU list:
1/services/mail/exim/etc/fail_aliases.db
End
internal_search_find: file="/services/mail/exim/etc/fail_aliases.db"
type=dbm key="testing1000@???"
file lookup required for testing1000@???
in /services/mail/exim/etc/fail_aliases.db
lookup failed
fail_aliases director failed for testing1000:
calling system_aliases director
system_aliases director: dbm key=testing1000@???
file="/services/mail/exim/etc/sys_aliases.db"
search_open: dbm "/services/mail/exim/etc/sys_aliases.db"
search_find: file="/services/mail/exim/etc/sys_aliases.db"
key="testing1000@???" partial=-1
LRU list:
1/services/mail/exim/etc/sys_aliases.db
1/services/mail/exim/etc/fail_aliases.db
End
internal_search_find: file="/services/mail/exim/etc/sys_aliases.db"
type=dbm key="testing1000@???"
file lookup required for testing1000@???
in /services/mail/exim/etc/sys_aliases.db
lookup failed
system_aliases director failed for testing1000:
calling exchange_aliases director
exchange_aliases director: dbm key=testing1000@???
file="/services/mail/exim/etc/exchange_aliases.db"
search_open: dbm "/services/mail/exim/etc/exchange_aliases.db"
search_find: file="/services/mail/exim/etc/exchange_aliases.db"
key="testing1000@???" partial=-1
LRU list:
1/services/mail/exim/etc/exchange_aliases.db
1/services/mail/exim/etc/sys_aliases.db
1/services/mail/exim/etc/fail_aliases.db
End
internal_search_find:
file="/services/mail/exim/etc/exchange_aliases.db"
type=dbm key="testing1000@???"
file lookup required for testing1000@???
in /services/mail/exim/etc/exchange_aliases.db
lookup failed
exchange_aliases director failed for testing1000:
calling majordomo_aliases director
majordomo_aliases director: dbm key=testing1000
file="/services/mail/content/majordomo/majordomo_aliases.db"
search_open: dbm
"/services/mail/content/majordomo/majordomo_aliases.db"
search_find:
file="/services/mail/content/majordomo/majordomo_aliases.db"
key="testing1000" partial=-1
LRU list:
1/services/mail/content/majordomo/majordomo_aliases.db
1/services/mail/exim/etc/exchange_aliases.db
1/services/mail/exim/etc/sys_aliases.db
1/services/mail/exim/etc/fail_aliases.db
End
internal_search_find:
file="/services/mail/content/majordomo/majordomo_aliases.db"
type=dbm key="testing1000"
file lookup required for testing1000
in /services/mail/content/majordomo/majordomo_aliases.db
lookup failed
majordomo_aliases director failed for testing1000:
calling virtual_aliasfile director
virtual_aliasfile director: dbm key=testing1000@???
file="/services/mail/exim/etc/virtual_aliases.db"
search_open: dbm "/services/mail/exim/etc/virtual_aliases.db"
search_find: file="/services/mail/exim/etc/virtual_aliases.db"
key="testing1000@???" partial=-1
LRU list:
1/services/mail/exim/etc/virtual_aliases.db
1/services/mail/content/majordomo/majordomo_aliases.db
1/services/mail/exim/etc/exchange_aliases.db
1/services/mail/exim/etc/sys_aliases.db
1/services/mail/exim/etc/fail_aliases.db
End
internal_search_find:
file="/services/mail/exim/etc/virtual_aliases.db"
type=dbm key="testing1000@???"
file lookup required for testing1000@???
in /services/mail/exim/etc/virtual_aliases.db
lookup failed
virtual_aliasfile director failed for testing1000:
calling virtual_forward director
search_open: dbm "/services/mail/exim/etc/virtusers.db"
search_find: file="/services/mail/exim/etc/virtusers.db"
key="testing1000@???:homedir" partial=-1
LRU list:
1/services/mail/exim/etc/virtusers.db
1/services/mail/exim/etc/virtual_aliases.db
1/services/mail/content/majordomo/majordomo_aliases.db
1/services/mail/exim/etc/exchange_aliases.db
1/services/mail/exim/etc/sys_aliases.db
1/services/mail/exim/etc/fail_aliases.db
End
internal_search_find: file="/services/mail/exim/etc/virtusers.db"
type=dbm key="testing1000@???"
file lookup required for testing1000@???:homedir
in /services/mail/exim/etc/virtusers.db
lookup failed
virtual_forward director: file = /services/this_file_never_exists
search_open: dbm "/services/mail/exim/etc/virtusers.db"
cached open
search_find: file="/services/mail/exim/etc/virtusers.db"
key="testing1000@???:uid" partial=-1
LRU list:
1/services/mail/exim/etc/virtusers.db
1/services/mail/exim/etc/virtual_aliases.db
1/services/mail/content/majordomo/majordomo_aliases.db
1/services/mail/exim/etc/exchange_aliases.db
1/services/mail/exim/etc/sys_aliases.db
1/services/mail/exim/etc/fail_aliases.db
End
internal_search_find: file="/services/mail/exim/etc/virtusers.db"
type=dbm key="testing1000@???"
cached data used for lookup of testing1000@???:uid
in /services/mail/exim/etc/virtusers.db
lookup failed
search_open: dbm "/services/mail/exim/etc/virtusers.db"
cached open
search_find: file="/services/mail/exim/etc/virtusers.db"
key="testing1000@???:gid" partial=-1
LRU list:
1/services/mail/exim/etc/virtusers.db
1/services/mail/exim/etc/virtual_aliases.db
1/services/mail/content/majordomo/majordomo_aliases.db
1/services/mail/exim/etc/exchange_aliases.db
1/services/mail/exim/etc/sys_aliases.db
1/services/mail/exim/etc/fail_aliases.db
End
internal_search_find: file="/services/mail/exim/etc/virtusers.db"
type=dbm key="testing1000@???"
cached data used for lookup of testing1000@???:gid
in /services/mail/exim/etc/virtusers.db
lookup failed
set uid=0 gid=1 euid=55 egid=55
/services/this_file_never_exists not found
restored uid=0 gid=1 euid=55 egid=55
calling virtual_localusers director
virtual_localusers director: dbm key=testing1000@???
file="/services/mail/exim/etc/virtusers.db"
search_open: dbm "/services/mail/exim/etc/virtusers.db"
cached open
search_find: file="/services/mail/exim/etc/virtusers.db"
key="testing1000@???" partial=-1
LRU list:
1/services/mail/exim/etc/virtusers.db
1/services/mail/exim/etc/virtual_aliases.db
1/services/mail/content/majordomo/majordomo_aliases.db
1/services/mail/exim/etc/exchange_aliases.db
1/services/mail/exim/etc/sys_aliases.db
1/services/mail/exim/etc/fail_aliases.db
End
internal_search_find: file="/services/mail/exim/etc/virtusers.db"
type=dbm key="testing1000@???"
cached data used for lookup of testing1000@???
in /services/mail/exim/etc/virtusers.db
lookup failed
virtual_localusers director failed for testing1000:
calling virtual_catchalls director
virtual_catchalls director: dbm* key=testing1000@???
file="/services/mail/exim/etc/catchall_aliases.db"
search_open: dbm "/services/mail/exim/etc/catchall_aliases.db"
search_find: file="/services/mail/exim/etc/catchall_aliases.db"
key="testing1000@???" partial=3071
LRU list:
1/services/mail/exim/etc/catchall_aliases.db
1/services/mail/exim/etc/virtusers.db
1/services/mail/exim/etc/virtual_aliases.db
1/services/mail/content/majordomo/majordomo_aliases.db
1/services/mail/exim/etc/exchange_aliases.db
1/services/mail/exim/etc/sys_aliases.db
1/services/mail/exim/etc/fail_aliases.db
End
internal_search_find:
file="/services/mail/exim/etc/catchall_aliases.db"
type=dbm key="testing1000@???"
file lookup required for testing1000@???
in /services/mail/exim/etc/catchall_aliases.db
lookup failed
trying default match *@look.ca
internal_search_find:
file="/services/mail/exim/etc/catchall_aliases.db"
type=dbm key="*@look.ca"
file lookup required for *@look.ca
in /services/mail/exim/etc/catchall_aliases.db
lookup failed
trying to match *
internal_search_find:
file="/services/mail/exim/etc/catchall_aliases.db"
type=dbm key="*"
file lookup required for *
in /services/mail/exim/etc/catchall_aliases.db
lookup failed
virtual_catchalls director failed for testing1000:
testing1000@??? is undeliverable:
unknown local-part "testing1000" in domain "look.ca"
search_tidyup called

Sincerely, Warren

- -----
Warren Vanichuk, Senior Systems Analyst, Team Lead
Network Operations @ Look Communications Inc.
http://www.look.ca/