director_username_hash = %d and doveadm director map

Ralf Becker rb at egroupware.org
Sun Nov 29 17:10:46 EET 2020


To answer my question I was able to identify the director code on Github 
and the hashes are the first 4 byte of the binary md5 written as a 32 
bit integer.

With that I was able to write a script that runs doveadm director map, 
queries all domains from our internal management, calculates the hashes 
and displays a joined list:

doveadm-director map | grep rbz
rbz-xxxxxxxxx.de                             3766880388 10.44.88.5   
nfs      2020-11-29 15:06:53
rbz-yyyyyyyyyyyy.de                          3088689059 10.44.88.1   
extern   2020-11-29 15:07:11

When I move a domain between backends / tags, I see for some time the 
moved domain is listed for both tags, thought doveadm who on the 
backends show users are only connected to the new backend. No idea why 
that ist. Trying doveadm director move does NOT change that situation.

I currently disable the domain in our dict used for userdb and passdb, 
clear the auth cache of all directors and flush them, before (final) 
rsync of the mailboxes of the domain to the new backend. When our dicts 
answer again with the new director tag, connections are going to the 
correct backend-pair. But it takes some hours for the old mapping to 
disappear.

Is that the expected behavior?
Is doveadm director move supposted to work with director_username_hash = %d?

Ralf


Am 23.11.20 um 15:15 schrieb Ralf Becker:
> Our directors hash by domain (director_username_hash = %d), as some of 
> our users share folders with other users of the same domain.
>
> We now started using director tags to map domains to their backends.
>
> Unfortunately doveadm director map seems no to work with 
> director_username_hash = %d
>
> user    hash    mail server ip expire time
> <unknown> 432784257 10.44.88.1   2020-11-23 13:10:55
> <unknown> 4244233328 10.44.88.1   2020-11-23 13:13:55
> <unknown> 1913982503 10.44.88.1   2020-11-23 13:15:40
>
> How can I check to which backend / IP a domain is maped, aka how is 
> that hash calculated?
>
> doveadm director move seems also not to do anything meaningful for %d, 
> or at least I have not found out how to use it to move a domain to a 
> different backend.
>
> Hoping for some insight :)
>
> Ralf
>

-- 
Ralf Becker
EGroupware GmbH [www.egroupware.org]
Handelsregister HRB Kaiserslautern 3587
Geschäftsführer Birgit und Ralf Becker
Leibnizstr. 17, 67663 Kaiserslautern, Germany
Telefon +49 631 31657-0




More information about the dovecot mailing list