[Dovecot] dsync replication errors

Oli Schacher dovecot at lists.wgwh.ch
Thu Jan 31 19:41:25 EET 2013

On Thu, 31 Jan 2013 18:49:18 +0200
Timo Sirainen <tss at iki.fi> wrote:

> http://hg.dovecot.org/dovecot-2.2/rev/86629f621fe4 should fix this
> crash.
> The duplication happens because maildir somehow messes up itself. I
> guess I should look into it.

thanks, much appreciated!

> > test 3: mdbox again,  append 1000 messages with claws mail, but have
> > thunderbird connected at the same time to both accounts while doing
> > so. this leads to the same problem as before (duplication, errors).
> > I guess thunderbird wants to set a seen flag and modifying the
> > mailbox while it's being synced is probably is a bad idea, but you
> > never know what users are going to do :-)
> > 
> > Jan 31 17:13:11 doco1 dovecot: dsync-local(user1): Error: Mailbox
> > INBOX: Remote didn't send mail GUID=33dabe0f11980a51200c0000960042f4
> > (UID=104)
> All of the clients and changes are done only to one side, not to both
> sides?

In my previous tests I had thunderbird connected to both servers,
without actually doing anything, just watching the mailbox unread
counter go up. It could be it tried to update both mailboxes. I don't
know what thunderbird does in the background when you're not actually
clicking on a mailbox. The errors were visible in both maillogs
(server1 and server2).

But I can reproduce the problem by connecting only to server1, in that
case, the errors show up in server1's log only:

the current test scenario looks like:

- both servers empty mail store, configuration set to mdbox
- start server 1
- start server 2
- connect claws mail to server1
- connect thunderbird to server1 too
- in claws mail copy a few hundred mails from a remote box to server1
- I can see the unread counter go up in thunderbird
- "Remote didn't send mail" errors start popping up, but only in
  server1's maillog this time 
- mails are duplicated

in one testrun I also saw the assert failure below, but again, I can't
reproduce this one :

Jan 31 18:10:11 doco1 dovecot: doveadm: Error: dsync-remote(user1):
Panic: file dsync-mailbox-import.c: line 1080
(dsync_mailbox_import_change): assertion failed: (change->type ==
DSYNC_MAIL_CHANGE_TYPE_SAVE) Jan 31 18:10:11 doco1 dovecot: doveadm:
Error: dsync-remote(user1): Error: Raw
backtrace: /usr/lib64/dovecot/libdovecot.so.0(+0x5ce8a)
-> /usr/lib64/dovecot/libdovecot.so.0(default_fatal_handler+0x32)
[0x7f0ac3602f72] -> /usr/lib64/dovecot/libdovecot.so.0(+0x1f55a)
[0x7f0ac35c555a] -> /usr/bin/doveadm(dsync_mailbox_import_change+0x501)
[0x42c631] -> /usr/bin/doveadm(dsync_brain_sync_mails+0x3a2) [0x4290a2]
-> /usr/bin/doveadm(dsync_brain_run+0x169) [0x425e09]
-> /usr/bin/doveadm() [0x426360] -> /usr/bin/doveadm() [0x434780]
-> /usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x36)
-> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0xa7)
-> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x28)
[0x7f0ac36119b8] -> /usr/bin/doveadm() [0x424114] -> /usr/bin/doveadm()
[0x40fe4f] -> /usr/bin/doveadm() [0x41067d]
-> /usr/bin/doveadm(doveadm_mail_try_run+0x141) [0x410ba1]
-> /usr/bin/doveadm(main+0x3f1) [0x417ba1]
-> /lib64/libc.so.6(__libc_start_main+0xfd) [0x7f0ac3231cdd]
-> /usr/bin/doveadm() [0x40f839]

message transmitted on 100% recycled electrons

More information about the dovecot mailing list