dsync panic in mbox_lock

Aki Tuomi
Sat, 16 Sep 2017 09:11:35 -0000

> On September 16, 2017 at 5:28 AM Emmanuel Dreyfus <manu at
netbsd.org> wrote:
>
>
> Hello
>
> I am trying to setup replication with dovecot-2.2.29.1, and for some
> users, I get a reproductible panic:
>
> # doveadm -v -o plugin/mail_replica=remoteprefix:root at mail2.example.net
> sync -d  -u jdoe
> dsync-local(jdoe): Panic: file mbox-lock.c: line 799 (mbox_lock):
> assertion failed: (lock_type == F_RDLCK || mbox->mbox_lock_type !>
F_RDLCK)
> Abort
>
> User is not overquota, and filesystem permissions are correct.
>
> kernel trace shows it happens just after a stat() on INBOX/dovecot.ind
> ex.log. Here is doveadm backtrace:
>
> #0  0x00007f7ff650e6fa in _lwp_kill () from /lib/libc.so.12
> #1  0x00007f7ff650e385 in abort () from /lib/libc.so.12
> #2  0x00007f7ff6c91acc in default_fatal_finish ()
>    from /usr/pkg/lib/dovecot/libdovecot.so.0
> #3  0x00007f7ff6c91b4a in default_fatal_handler ()
>    from /usr/pkg/lib/dovecot/libdovecot.so.0
> #4  0x00007f7ff6cbcb9b in i_panic () from
> /usr/pkg/lib/dovecot/libdovecot.so.0
> #5  0x00007f7ff7076721 in mbox_lock ()
>    from /usr/pkg/lib/dovecot/libdovecot-storage.so.0
> #6  0x00007f7ff7077da7 in mbox_save_begin ()
>    from /usr/pkg/lib/dovecot/libdovecot-storage.so.0
> #7  0x00007f7ff580c3f8 in quota_save_begin ()
>    from /usr/pkg/lib/dovecot/lib10_quota_plugin.so
> #8  0x00007f7ff7047f63 in mailbox_save_begin ()
>    from /usr/pkg/lib/dovecot/libdovecot-storage.so.0
> #9  0x00007f7ff703d983 in mail_storage_copy ()
>    from /usr/pkg/lib/dovecot/libdovecot-storage.so.0
> #10 0x00007f7ff5401f10 in notify_copy ()
>    from /usr/pkg/lib/dovecot/lib15_notify_plugin.so
> #11 0x00007f7ff580c259 in quota_copy ()
>    from /usr/pkg/lib/dovecot/lib10_quota_plugin.so
> #12 0x00007f7ff70480f8 in mailbox_copy_int ()
>    from /usr/pkg/lib/dovecot/libdovecot-storage.so.0
> #13 0x00007f7ff70482a5 in mailbox_move ()
>    from /usr/pkg/lib/dovecot/libdovecot-storage.so.0
> #14 0x000000000043a118 in ?? ()
> #15 0x000000000043b465 in ?? ()
> #16 0x000000000043db03 in dsync_mailbox_import_changes_finish ()
> #17 0x000000000043906c in dsync_brain_sync_mails ()
> #18 0x0000000000434e4d in dsync_brain_run ()
> #19 0x000000000043514b in ?? ()
> #20 0x0000000000447ca9 in ?? ()
> #21 0x00007f7ff6ca3e65 in io_loop_call_io ()
>    from /usr/pkg/lib/dovecot/libdovecot.so.0
> #22 0x00007f7ff6ca5179 in io_loop_handler_run_internal ()
>    from /usr/pkg/lib/dovecot/libdovecot.so.0
> #23 0x00007f7ff6ca3efa in io_loop_handler_run ()
>    from /usr/pkg/lib/dovecot/libdovecot.so.0
> #24 0x00007f7ff6ca4099 in io_loop_run ()
>    from /usr/pkg/lib/dovecot/libdovecot.so.0
> #25 0x00000000004205b2 in ?? ()
> #26 0x0000000000422754 in ?? ()
> #27 0x0000000000423074 in ?? ()
> #28 0x00000000004238d1 in doveadm_mail_try_run ()
> #29 0x000000000045182a in main ()
>
> Any hint?
>
> --
> Emmanuel Dreyfus
> http://hcpnet.free.fr/pubz
> manu at netbsd.org

Hi!

We have seen this before but so far the actual bug has not been reproducible for
us. Can you post your doveconf -n and also logs with

doveadm -Dv -o plugin/mail_replica=remoteprefix:root at mail2.example.net sync
-d -u jdoe

Aki