Error using dsync to convert really old mboxes to Maildir and workaround
faginbagin
ubuntu at hbuus.com
Mon Sep 24 09:10:52 EEST 2018
On 9/24/2018 1:50 AM, faginbagin wrote:
> I ran across what I think may be a bug in dsync when trying to convert from mbox to Maildir format. My first attempt failed with a runaway dsync process spewing out thousands of identical lines of the form:
>
> dsync(buus): Error: Duplicate mailbox GUID 00fe691ff60da85b090d0000c8119523 for mailboxes Archive/Personal and Work/VendorInfo - giving a new GUID 00fe691ff60da85b090d0000c8119523 to Archive/Personal
>
> These two mail folders happen to be among a number of folders I've had for many years, but also haven't looked at in many years. I used to use UW-IMAP, but switched to dovecot about two years ago, and I'm sure I've never used dovecot to look at those folders. So I suspect the root cause of the above error message was that dovecot had never generated GUIDs for these and some other really old folders.
>
> After killing dsync with SIGKILL, which couldn't be killed with SIGTERM, I restored my mbox format Mail folder from backup, restored the mail_location and then coerced dovecot to generate unique GUIDs for all my mail folders with this command:
>
> doveadm mailbox status guid `doveadm mailbox list`
>
> After the above command, I was able to convert my mail from mbox to Maildir format.
>
> Maybe this will help someone else somewhere down the road.
Forgot to provide dovecot -n output:
# 2.2.27 (c0f36b0): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.16 (fed8554)
# OS: Linux 4.9.0-8-686-pae i686 Debian 9.5
mail_location = maildir:~/Maildir
# mail_location was the following when error occurred:
# mail_location = mbox:~/Mail:INBOX=/var/mail/%u:UTF-8
# Also separator was not set when error occurred.
mail_privileged_group = mail
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
separator = /
}
passdb {
driver = pam
}
protocols = " imap"
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = # hidden, use -P to show it
userdb {
driver = passwd
}
More information about the dovecot
mailing list