[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
HELP: lower-case aliases to upper-case accounts ending up in bitbucket
We have mixed-case accounts with names like Ab_37 on our system.
We have lower-case aliases pointing to the mixed-case accounts, like
ab_37:Ab_37
After upgrading from zmailer 2.99.49p10 to 2.99.50-s11, mail to ab_37 or
Ab_37 ends up in the bitbucket. It looks like the router wants to
infinite-loop on the address for some reason, so it gives up and sends it
to bitbucket.
z# router Ab_37
<michael.interactive@halifax.chebucto.ns.ca>: address: Ab_37
(((bitbucket Ab_371 Ab_37 g1)))
^^^^^^ note trailing 1
scheduler.perflog shows a line like:
926222550 32654-5356 7 12 ok3 bitbucket/ab_37@chebucto.ns.ca1
How do we prevent this infinite looping? Adding a backslash like:
ab_37:\Ab_37
doesn't change anything.
I've attached the output from router -i:
z# rtrace on
z# router Ab_37 > router.a3 2>&1
Thanks
router Ab_37
attributes=default_attributes
: default_attributes
defer=''
log address: Ab_37
get (get envelopeinfo message-id) <0>
echo <michael.interactive@halifax.chebucto.ns.ca>: address: Ab_37
db flush expansions
msgidfilter Ab_37 default_attributes
return (return 0) <0>
tmp=''
rrouter Ab_37 Ab_37 default_attributes ''
didhostexpand=''
fqdn_neighbour Ab_37 Ab_37 default_attributes
get (get default_attributes type) <0>
recase -l Ab_37
lcaddress=ab_37
plustail=''
tcomparing '^(.+)@(.+)$' and 'ab_37'
tcomparing '^.*$' and 'ab_37'
tmatched '^.*$' and 'ab_37'
return (return 1) <0>
?=1
?=1
?=1
tmp=''
?=1
condquote Ab_37
address=Ab_37
scomparing '^"(.*)"<(.*)$' and 'Ab_37'
scomparing '^"(.*)">(.*)$' and 'Ab_37'
scomparing '^([\"].*[\"])<(.*)$' and 'Ab_37'
scomparing '^([\"].*[\"])>(.*)$' and 'Ab_37'
canonicalize Ab_37
dequote Ab_37
address=Ab_37
scomparing '^(/.+)@(.+)$' and 'Ab_37'
scomparing '^((\|.+)|(/.+)|(:include:.+))$' and 'Ab_37'
tcomparing '^((<>)|(:;))$' and 'Ab_37'
tcomparing '^(.*)<@(.*)>(.*)$' and 'Ab_37'
tcomparing '^(@.+),(.+)$' and 'Ab_37'
tcomparing '^(@.+):(.+:.+)$' and 'Ab_37'
tcomparing '^@([^,:]+)([,:].+)$' and 'Ab_37'
tcomparing '^(.*)::(.*)$' and 'Ab_37'
tcomparing '^(.*)@([^@]*.uucp)$' and 'Ab_37'
tcomparing '^(.*)@([^@]*)$' and 'Ab_37'
tcomparing '^\[(.*)\]!(.*)$' and 'Ab_37'
tcomparing '^([^!.]*)!(.*)$' and 'Ab_37'
tcomparing '^([^!]*)!(.*)$' and 'Ab_37'
tcomparing '^(.*)%([^%]*)$' and 'Ab_37'
echo Ab_37
address=Ab_37
tcomparing '^@$' and 'Ab_37'
tcomparing '^(.*)<@\[(.+)\]>(.*)$' and 'Ab_37'
tcomparing '^(.*)<@(.*)\.>(.*)$' and 'Ab_37'
tcomparing '^(.*)<@(.*)(ns.ca)>(.*)$' and 'Ab_37'
tcomparing '^<@(.*)>[:,](.+)@(.+)$' and 'Ab_37'
tcomparing '^<@(ns.ca)>[:,](.+)@(.+)$' and 'Ab_37'
tcomparing '^(.+)<@(.+)>(.*)$' and 'Ab_37'
tcomparing '^<@>.(.+)$' and 'Ab_37'
tcomparing '^(.+)<@>$' and 'Ab_37'
tcomparing '^(.*)<@(.+)>(.*)$' and 'Ab_37'
scomparing '^\\(.+)$' and 'Ab_37'
scomparing '^/.+$' and 'Ab_37'
scomparing '^\|.+$' and 'Ab_37'
scomparing '^:include:.+$' and 'Ab_37'
scomparing '^.*$' and 'Ab_37'
smatched '^.*$' and 'Ab_37'
[ -z ]
domain=@chebucto.ns.ca
tmp=(local Ab_37 Ab_37 default_attributes)
routeuser (local Ab_37 Ab_37 default_attributes) '' @chebucto.ns.ca
plustail2=''
attributes (attributes (local Ab_37 Ab_37 default_attributes)) <0>
attr=default_attributes
channel (channel (local Ab_37 Ab_37 default_attributes)) <0>
chan=local
get (get default_attributes type) <0>
a=(local Ab_37 Ab_37 default_attributes)
user (user (local Ab_37 Ab_37 default_attributes)) <0>
user=Ab_37
host (host (local Ab_37 Ab_37 default_attributes)) <0>
key=localAb_37Ab_37
%dblookup (expansions localAb_37Ab_37) <0>
expansions(localAb_37Ab_37)
?=1
?=1
didexpand=''
?=1
[ -n ]
?=1
al=nil
?=1
channel (channel (local Ab_37 Ab_37 default_attributes)) <0>
user (user (local Ab_37 Ab_37 default_attributes)) <0>
condquote Ab_37
user=Ab_37
host (host (local Ab_37 Ab_37 default_attributes)) <0>
condquote Ab_37
host=Ab_37
[ -n ]
?=1
scomparing '^\\(.*)$' and 'Ab_37'
scomparing '^:include:(.+)$' and 'Ab_37'
scomparing '^[|/].*$' and 'Ab_37'
?=1
[ -z ]
aliases Ab_37
%dblookup (aliasesdb Ab_37) <0>
aliasesdb(Ab_37)
aliasesdb(ab_37) = Ab_37
... terminating cache[0]
... added ab_37 to cache
a=Ab_37
db owner aliasesdb
filepriv -M 644 /csuite/zmailer/db/aliases.ndbm 0
priv=0
return (return Ab_37) <0>
a=Ab_37
db add expansions localAb_37Ab_37 alias
newattribute default_attributes privilege 0
gensym
a=g0
eval g0=$default_attributes
g0=(privilege nobody type recipient)
?=7
?=7
[ 2 != 0 ]
lreplace (lreplace g0 privilege 0) <0>
?=1
shift
shift
[ 0 != 0 ]
?=1
?=1
echo g0
nattr=g0
echo Ab_37
listaddresses -E root -e root -c Ab_37 file expansion
maprrouter g0 Ab_37 Ab_37 '' @chebucto.ns.ca
al=nil
read address
address=Ab_37
defer=''
rrouter Ab_37 Ab_37 g0 '' @chebucto.ns.ca
didhostexpand=''
fqdn_neighbour Ab_37 Ab_37 g0
get (get g0 type) <0>
recase -l Ab_37
lcaddress=ab_37
plustail=''
tcomparing '^(.+)@(.+)$' and 'ab_37'
tcomparing '^.*$' and 'ab_37'
tmatched '^.*$' and 'ab_37'
return (return 1) <0>
?=1
?=1
?=1
tmp=''
?=1
condquote Ab_37
address=Ab_37
scomparing '^"(.*)"<(.*)$' and 'Ab_37'
scomparing '^"(.*)">(.*)$' and 'Ab_37'
scomparing '^([\"].*[\"])<(.*)$' and 'Ab_37'
scomparing '^([\"].*[\"])>(.*)$' and 'Ab_37'
canonicalize Ab_37
dequote Ab_37
address=Ab_37
scomparing '^(/.+)@(.+)$' and 'Ab_37'
scomparing '^((\|.+)|(/.+)|(:include:.+))$' and 'Ab_37'
tcomparing '^((<>)|(:;))$' and 'Ab_37'
tcomparing '^(.*)<@(.*)>(.*)$' and 'Ab_37'
tcomparing '^(@.+),(.+)$' and 'Ab_37'
tcomparing '^(@.+):(.+:.+)$' and 'Ab_37'
tcomparing '^@([^,:]+)([,:].+)$' and 'Ab_37'
tcomparing '^(.*)::(.*)$' and 'Ab_37'
tcomparing '^(.*)@([^@]*.uucp)$' and 'Ab_37'
tcomparing '^(.*)@([^@]*)$' and 'Ab_37'
tcomparing '^\[(.*)\]!(.*)$' and 'Ab_37'
tcomparing '^([^!.]*)!(.*)$' and 'Ab_37'
tcomparing '^([^!]*)!(.*)$' and 'Ab_37'
tcomparing '^(.*)%([^%]*)$' and 'Ab_37'
echo Ab_37
address=Ab_37
tcomparing '^@$' and 'Ab_37'
tcomparing '^(.*)<@\[(.+)\]>(.*)$' and 'Ab_37'
tcomparing '^(.*)<@(.*)\.>(.*)$' and 'Ab_37'
tcomparing '^(.*)<@(.*)(ns.ca)>(.*)$' and 'Ab_37'
tcomparing '^<@(.*)>[:,](.+)@(.+)$' and 'Ab_37'
tcomparing '^<@(ns.ca)>[:,](.+)@(.+)$' and 'Ab_37'
tcomparing '^(.+)<@(.+)>(.*)$' and 'Ab_37'
tcomparing '^<@>.(.+)$' and 'Ab_37'
tcomparing '^(.+)<@>$' and 'Ab_37'
tcomparing '^(.*)<@(.+)>(.*)$' and 'Ab_37'
scomparing '^\\(.+)$' and 'Ab_37'
scomparing '^/.+$' and 'Ab_37'
scomparing '^\|.+$' and 'Ab_37'
scomparing '^:include:.+$' and 'Ab_37'
scomparing '^.*$' and 'Ab_37'
smatched '^.*$' and 'Ab_37'
[ -z @chebucto.ns.ca ]
?=1
?=1
?=1
tmp=(local Ab_37 Ab_37 g0)
?=1
routeuser (local Ab_37 Ab_37 g0) '' @chebucto.ns.ca
plustail2=''
attributes (attributes (local Ab_37 Ab_37 g0)) <0>
attr=g0
channel (channel (local Ab_37 Ab_37 g0)) <0>
chan=local
get (get g0 type) <0>
a=(local Ab_37 Ab_37 g0)
user (user (local Ab_37 Ab_37 g0)) <0>
user=Ab_37
host (host (local Ab_37 Ab_37 g0)) <0>
key=localAb_37Ab_37
%dblookup (expansions localAb_37Ab_37) <0>
expansions(localAb_37Ab_37)
expansions(localab_37ab_37) = alias
didexpand=alias
[ -n alias ]
host (host (local Ab_37 Ab_37 g0)) <0>
user (user (local Ab_37 Ab_37 g0)) <0>
attributes (attributes (local Ab_37 Ab_37 g0)) <0>
return (return (((bitbucket Ab_371 Ab_37 g0)))) <0>
return (return (((bitbucket Ab_371 Ab_37 g0)))) <0>
shh=(((bitbucket Ab_371 Ab_37 g0)))
[ ]
?=1
defer=''
?=1
lappend (lappend al (((bitbucket Ab_371 Ab_37 g0)))) <0>
?=1
read address
?=1
?=1
return (return (((bitbucket Ab_371 Ab_37 g0)))) <0>
return (return (((bitbucket Ab_371 Ab_37 g0)))) <0>
return (return (((bitbucket Ab_371 Ab_37 g0)))) <0>
res=(((bitbucket Ab_371 Ab_37 g0)))
[ ]
?=1
?=1
return (return (((bitbucket Ab_371 Ab_37 g0)))) <0>
(((bitbucket Ab_371 Ab_37 g0)))