Bug#653750: section 10.7 and caching a typed list which includes a file name

Andreas Metzler ametzler at downhill.at.eu.org
Sat Jul 14 16:04:24 UTC 2012


On 2012-01-08 Regid Ichira <regid23 at yahoo.com> wrote:
>   Based on

>     $ zgrep -A22 '^10.3 File names in lists' \
>     > /usr/share/doc/exim4-base/spec.txt.gz | tail -4
>     Putting a file name in a list has the same effect as inserting
>     each line of the file as an item in the list (blank lines and
>     comments excepted). However, there is one important difference:
>     the file is read each time the list is processed, so if its
>     contents vary over time, Exim's behaviour changes.

> I think the following patch should be applied to section '10.7 Named
> list caching':

> --- spec.txt    2012-01-09 00:09:38.000000000 +0200
> +++ spec.txt.mod        2012-01-09 00:11:49.000000000 +0200
[...]
> -the cache operates only if the list contains no $ characters, which guarantees
[...]
> +the cache operates only if the list contains no $ characters, and no file
> +names, which guarantees that it will not change when it is expanded.
[...]

I am pretty sure this change is not correct, the contents of files are
cached.

For illustration, compare the results of these two settings (with
/etc/exim4/dc_other_hostnames containing a single line, listing a
single domain):
[1] domainlist local_domains = ${readfile{/etc/exim4/dc_other_hostnames}}
[2] domainlist local_domains = /etc/exim4/dc_other_hostnames

"exim -d+expand" shows this for [2]
check domains = !+local_domains
cached no match for +local_domains
cached lookup data = NULL

I think "if its contents vary over time" refers to the fact that a
newly forked forked exim binary (as happens for every incoming
connection or outgoing delivery) will read the new file.

cu andreas
-- 
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'





More information about the Pkg-exim4-maintainers mailing list