[Dovecot] dsync is seriously broken when syncing maildir and mdbox
Hello,
I thought mdbox was production ready, but it seems to me that (in 2.0.4) it's quite broken.
- The documentation only running this to convert from maildir to mdbox:
*dsync mirror maildir:~/Maildir*
but based on my experience and on posts on the mailing list, it's not enough. A namespace has to be defined and it's not clear whether / or . should be used as a separator. I tried with a dot first and the INBOX folders were empty. It seemed to work better with /
- After having defined a namespace, running dsync again makes it spit tons of errors Error: Can't rename mailbox INBOX_28c716242e53784cc9030100d3b51c5c to INBOX: Target mailbox already exists Error: Mailboxes don't have unique GUIDs: 4536121fce3ca14cf8c40000d3b51c5c is shared by INBOX and INBOX_4536121fce3ca14cf8c40c Info: INBOX/spam: only in dest Info: INBOX: only in source
Each run will create more folders with GUIDs attached to the folder name.
- Deleting these folders after having moved their content to the properly named ones seems impossible. I see a long list of folders in the bin and when I hit "Empty bin" in Thunderbird, nothing happens. There must must be a caching issue, because if I click on the folder, I'm told these folders don't exist.
If I dsync again, I still have conflicts, with folders that are in the bin and then with new copies of INBOX Error: Mailboxes don't have unique GUIDs: 4536121fce3ca14cf8c40000d3b51c5c is shared by INBOX and Trash/INBOX_4536121fce3ca14c Error: Mailboxes don't have unique GUIDs: 4536121fce3ca14cf8c40000d3b51c5c is shared by INBOX_4536121fce3ca14cf8c40000d3b51c5c
At that stage, the newly created INBOXes cannot be deleted because they already exist in the bin.
I renamed those folders, moved them to the bin, emptied the bin And it's still not fixed when running dsync Error: Mailboxes don't have unique GUIDs: 1a6f000a9751784c12030100d3b51c5c is shared by Sent and Trash/5 Info: Trash_INBOX_bb088f159336a14cc6bf0000d3b51c5c: only in dest Error: Can't rename mailbox INBOX to Trash_3: Renaming INBOX isn't supported.
Why can't folder properly be deleted? I never had that problem with Maildir.
Cheers,
Olivier
On Tue, 2010-09-28 at 03:08 +0100, interfaSys sàrl wrote:
Hello,
I thought mdbox was production ready, but it seems to me that (in 2.0.4) it's quite broken.
- The documentation only running this to convert from maildir to mdbox:
*dsync mirror maildir:~/Maildir*
but based on my experience and on posts on the mailing list, it's not enough. A namespace has to be defined and it's not clear whether / or . should be used as a separator. I tried with a dot first and the INBOX folders were empty. It seemed to work better with /
It doesn't really matter, just as long as it's something.
- After having defined a namespace, running dsync again makes it spit tons of errors Error: Can't rename mailbox INBOX_28c716242e53784cc9030100d3b51c5c to INBOX: Target mailbox already exists Error: Mailboxes don't have unique GUIDs: 4536121fce3ca14cf8c40000d3b51c5c is shared by INBOX and INBOX_4536121fce3ca14cf8c40c
What does "doveconf mail_location" say? It looks as if you're trying to convert from maildir:~/Maildir to maildir:~/Maildir, i.e. over itself. I thought about adding a check against that, but since it wasn't all that easy I thought maybe no one will actually run into that problem..
On 28/09/2010 19:54, Timo Sirainen wrote:
On Tue, 2010-09-28 at 03:08 +0100, interfaSys sàrl wrote:
Hello,
I thought mdbox was production ready, but it seems to me that (in 2.0.4) it's quite broken.
- The documentation only running this to convert from maildir to mdbox:
*dsync mirror maildir:~/Maildir*
but based on my experience and on posts on the mailing list, it's not enough. A namespace has to be defined and it's not clear whether / or . should be used as a separator. I tried with a dot first and the INBOX folders were empty. It seemed to work better with /
It doesn't really matter, just as long as it's something.
OK, so maybe it was unrelated, but I think it should be added to the Wiki that a namespace section has to be added since Maildir is fine without it.
- After having defined a namespace, running dsync again makes it spit tons of errors Error: Can't rename mailbox INBOX_28c716242e53784cc9030100d3b51c5c to INBOX: Target mailbox already exists Error: Mailboxes don't have unique GUIDs: 4536121fce3ca14cf8c40000d3b51c5c is shared by INBOX and INBOX_4536121fce3ca14cf8c40c
What does "doveconf mail_location" say? It looks as if you're trying to convert from maildir:~/Maildir to maildir:~/Maildir, i.e. over itself. I thought about adding a check against that, but since it wasn't all that easy I thought maybe no one will actually run into that problem..
This was set before using dsync: mail_location = mdbox:~/mdbox
Maybe using a dot as the separator first created some problems since the default for mdbox is /? Some Maildir folders didn't have an INBOX folder, so maybe this also generated issues? On each run, I think that folders like INBOX_reeri3838 would be sent back to Maildir which would send it back to mdbox, etc.
And the folder deletion problem was only experienced on Thunderbird 3. It was straightforward to delete folders from the Webmail. Maybe it was a subscription issue? Or maybe the webmail didn't have a cache for all these accounts...
What I did in the end is to clean up everything I could see before running dsync again and it seemed to work. If one folder was left (in the bin per example), then there would be extra folders created again.
I hope this doesn't sound too confusing. I'm trying to provide as much info as I can.
On 28.9.2010, at 20.08, interfaSys sàrl wrote:
I hope this doesn't sound too confusing. I'm trying to provide as much info as I can.
I'll look at this more closely again tomorrow, but full doveconf -n output will be helpful.
participants (2)
-
interfaSys sàrl
-
Timo Sirainen