On 27 Sep 2018, at 21.52, Evan Klitzke evan@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@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.