[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Zmailer aliases and list mapping troubles during delivery



	At first I thought this occurred on freshly started
	system, but the more I think of it, it must be a
	system with rather old routers, but changeing data..

...
> as it turns out, I'm using btree for aliases and fullnames
> (this is a Linux box :-), ndbm for pathalias, and unordered for
> both routes and localnames (localnames is set up to be incore, and to
> the old format -single column, and so doesn't show up):

	Hmm...  The "pathalias" is not really in my support list
	('cause I don't use it myself), routes and localnames can
	become binary databases if you issue manual "newdb" command
	on them at first (2.99.49p6+).

...
> [jmack@relay db]# ls -lu aliases* fullnames* 
> -rw-r--r--   1 root     root        64194 Nov 12 12:32 aliases
> -rw-r--r--   1 root     root       110592 Nov 12 12:40 aliases.db
> -rw-r--r--   1 root     bin         20474 Nov 10 19:06 fullnames
> -rw-r--r--   1 root     root        45056 Nov 12 08:57 fullnames.db
> 
> but I did have some old .idx and .dir files there too from the
> older zmailer (now removed). Perhaps they were mucking things up.
> I'll monitor it.

	Or perhaps the way you regenerated your binary databases
	has been the problem ?   For this reason I have written
	the "newdb" utility, which makes sure that certain internal
	assumtions are followed when compiling new databases.
	At the end of that script there is file replacement rule:

- - - - - - - -
# Now install the files

case "$DBTYPE" in
btree)
        mv $BASENAME.$$.db $BASENAME.db
        ;;
ndbm)
        mv $BASENAME.$$.dir $BASENAME.dir
        mv $BASENAME.$$.pag $BASENAME.pag
        ;;
dbm)
        mv $BASENAME.$$.dir $BASENAME.dir
        mv $BASENAME.$$.pag $BASENAME.pag
        ;;
gdbm)
        mv $BASENAME.$$.gdbm $BASENAME.gdbm
        ;;
esac
- - - - - - - -

	Writing to the files IN PLACE is a definite no-no due to
	a lack of interlocking at file access.

	The way the "-m" option at the relation definitions work
	is (amongst checking other parameters) to see, if the
	actively open database file (.PAG with multi-file dbs)
	has had its st_nlink status info dropped to zero.

	If the "refresh condition" occurs, the router will close,
	and reopen the database during the lookup.

> Thanks,
> -Jim

/Matti Aarnio <mea@nic.funet.fi>