On Thu, 2010-12-30 at 13:25 +0100, Thomas Leuxner wrote:
Did some tests with the fix, not sure it works correct/as expected:
$ time doveadm fetch -u user@domain.tld hdr mailbox Public/Mailing-Lists/Dovecot uid 1039 real 0m0.053s
$ time doveadm fetch -u user@domain.tld hdr mailbox-guid adeffe1c8b7ba64bb3770000a998a2df uid 1039 real 0m0.418s
It takes considerably longer when using 'mailbox-guid' compared to mailbox name, wonder why that is…
It's because there is no easy way to access mailbox GUIDs, so it has to open each mailbox and get its GUID.
I'm also not sure why it would recursively mangle all 'dovecot-uidlist' files within the namespace (it does in a public maildir namespace).
The mailbox GUID is stored in dovecot-uidlist file. If the mailbox doesn't already have a GUID, it's added there.
This is really dangerous when missing the proper -u parameter. Say you run it as 'root' and it should be run by 'vmail' really, then effectively all 'dovecot-uidlist' files will be owned by the wrong user afterwards… (root vs. vmail).
Well, I'm not really sure what to do about this.. Maybe it should refuse to run as root, but maybe some people actually want to do that..