doveadm backup abort in imapc-client.c

Timo Sirainen tss at iki.fi
Mon Oct 1 11:02:00 EEST 2018


> On 27 Sep 2018, at 21.52, Evan Klitzke <evan at eklitzke.org> wrote:
> 
> I am using Dovecot 2.2.36 and I am trying to use doveadm backup to migrate email from Gmail to Dovecot. When I run doveadm backup, it goes for a while and then eventually hits an assertion error (I've tried this a few times now and it happens reliably).
> 
> The assertion failure looks like this:
> 
> dsync(evan at eklitzke.org): Panic: file imapc-client.c: line 179 (imapc_client_run_pre): assertion failed: (client->ioloop == NULL)
> 
> The last few lines of log output before the crash look like this: https://gist.github.com/eklitzke/9a0dd77c44a6ee33e812f85d5773c24c
> 
> The GDB backtrace when the program panics looks like this: https://gist.github.com/eklitzke/6b311474b08b546c462e0444c5cf479b

Looks like it crashes when:
 - you have multiple folders
 - dsync takes over 1 second between folders
 - a new mail arrives during dsync
 - you have imapc_features=gmail-migration

A simple workaround should be to comment out "list->refreshed_mailboxes_recently = FALSE" in imapc-sync.c. A better fix would probably be to remember an opened folder's mailbox_info_flags so it doesn't try to re-get them.



More information about the dovecot mailing list