Bug Report - Crash on imap with core dump - Alternate storage related

Daniel van Ham Colchete daniel.colchete at gmail.com
Wed May 11 19:45:42 UTC 2016


I can confirm that this bug also happens on the latest version available:

root at dovecot:/# dovecot --version
2.2.devel (ebf2e93)
root at dovecot:/# dpkg -l|grep dovecot
ii  dovecot-core               2:2.2.24-1~auto+23        amd64
 secure POP3/IMAP server - core files
ii  dovecot-dbg                2:2.2.24-1~auto+23        amd64
 secure POP3/IMAP server - debug symbols
ii  dovecot-imapd              2:2.2.24-1~auto+23        amd64
 secure POP3/IMAP server - IMAP daemon
ii  dovecot-lmtpd              2:2.2.24-1~auto+23        amd64
 secure POP3/IMAP server - LMTP server
ii  dovecot-lucene             2:2.2.24-1~auto+23        amd64
 secure POP3/IMAP server - Lucene support
ii  dovecot-mysql              2:2.2.24-1~auto+23        amd64
 secure POP3/IMAP server - MySQL support
ii  dovecot-pop3d              2:2.2.24-1~auto+23        amd64
 secure POP3/IMAP server - POP3 daemon
ii  dovecot-sieve              2:2.2.24-1~auto+23        amd64
 secure POP3/IMAP server - Sieve filters support
ii  dovecot-solr               2:2.2.24-1~auto+23        amd64
 secure POP3/IMAP server - Solr support


On Wed, May 11, 2016 at 4:38 PM, Daniel van Ham Colchete <
daniel.colchete at gmail.com> wrote:

> I would like to report a bug we are seeing on an new deployment here:
>
> Linux: Debian Jessie, inside a Docker container
> Dovecot version: 2.2.23 (806d709) / 2.2.23-1~bpo8+1
> doveconf -n: http://pastebin.com/2xA2xuRw
> Filesystem: CephFS - Jewel
>
> After migrating our users from our old server to our new one we can't
> access a few mailboxes. Backtrace follows:
>
> root at dovecot:/# gdb --args /usr/lib/dovecot/imap -u
> daniel.colchete at mav.com.br
> GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
> Copyright (C) 2014 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <
> http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from /usr/lib/dovecot/imap...Reading symbols from
> /usr/lib/debug/.build-id/e2/488f839ac2b10504ef74b1b2f2146891ca2f62.debug...done.
> done.
> (gdb) run
> Starting program: /usr/lib/dovecot/imap -u daniel.colchete at mav.com.br
> * PREAUTH [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
> IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT
> MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS
> LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN
> CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE QUOTA] Logged in as
> daniel.colchete at mav.com.br
> a select INBOX
>
> Program received signal SIGSEGV, Segmentation fault.
> strrchr () at ../sysdeps/x86_64/strrchr.S:32
> 32      ../sysdeps/x86_64/strrchr.S: No such file or directory.
> (gdb) where
> #0  strrchr () at ../sysdeps/x86_64/strrchr.S:32
> #1  0x00007ffff7b0a261 in sdbox_file_move (file=file at entry=0x5555557e6530,
> alt_path=alt_path at entry=true) at sdbox-file.c:312
> #2  0x00007ffff7b0cd11 in dbox_sync_file_move_if_needed
> (type=SDBOX_SYNC_ENTRY_TYPE_MOVE_TO_ALT, file=0x5555557e6530) at
> sdbox-sync.c:30
> #3  sdbox_sync_file (type=SDBOX_SYNC_ENTRY_TYPE_MOVE_TO_ALT, uid=13120,
> seq=819, ctx=0x5555557e32e0) at sdbox-sync.c:58
> #4  sdbox_sync_add (sync_rec=0x7fffffffe570, ctx=0x5555557e32e0) at
> sdbox-sync.c:96
> #5  sdbox_sync_index (ctx=0x5555557e32e0) at sdbox-sync.c:131
> #6  sdbox_sync_begin (mbox=mbox at entry=0x5555557ce500, flags=flags at entry=(unknown:
> 0), ctx_r=ctx_r at entry=0x7fffffffe680) at sdbox-sync.c:234
> #7  0x00007ffff7b0d07d in sdbox_sync (mbox=mbox at entry=0x5555557ce500,
> flags=flags at entry=(unknown: 0)) at sdbox-sync.c:297
> #8  0x00007ffff7b0d108 in sdbox_storage_sync_init (box=0x5555557ce500,
> flags=(MAILBOX_SYNC_FLAG_FULL_READ | MAILBOX_SYNC_FLAG_FIX_INCONSISTENT))
> at sdbox-sync.c:323
> #9  0x00007ffff7aea85b in mailbox_sync_init (box=0x5555557ce500,
> flags=(MAILBOX_SYNC_FLAG_FULL_READ | MAILBOX_SYNC_FLAG_FIX_INCONSISTENT))
> at mail-storage.c:1664
> #10 0x00007ffff7aea9a7 in mailbox_sync (box=<optimized out>,
> flags=<optimized out>, flags at entry=MAILBOX_SYNC_FLAG_FULL_READ) at
> mail-storage.c:1712
> #11 0x0000555555568fa0 in select_open (readonly=false, mailbox=<optimized
> out>, ctx=0x5555557c9928) at cmd-select.c:303
> #12 cmd_select_full (cmd=<optimized out>, readonly=<optimized out>) at
> cmd-select.c:426
> #13 0x000055555556fdbd in command_exec (cmd=cmd at entry=0x5555557c9800) at
> imap-commands.c:180
> #14 0x000055555556e182 in client_command_input (cmd=cmd at entry=0x5555557c9800)
> at imap-client.c:958
> #15 0x000055555556e210 in client_command_input (cmd=0x5555557c9800) at
> imap-client.c:1018
> #16 0x000055555556e5d5 in client_handle_next_command
> (remove_io_r=<synthetic pointer>, client=0x5555557c8c00) at
> imap-client.c:1058
> #17 client_handle_input (client=0x5555557c8c00) at imap-client.c:1070
> #18 0x000055555556ead5 in client_input (client=0x5555557c8c00) at
> imap-client.c:1117
> #19 0x00007ffff7837c3c in io_loop_call_io (io=0x5555557c96f0) at
> ioloop.c:564
> #20 0x00007ffff78390a1 in io_loop_handler_run_internal (ioloop=ioloop at entry=0x5555557966e0)
> at ioloop-epoll.c:220
> #21 0x00007ffff7837cc5 in io_loop_handler_run (ioloop=ioloop at entry=0x5555557966e0)
> at ioloop.c:612
> #22 0x00007ffff7837e68 in io_loop_run (ioloop=0x5555557966e0) at
> ioloop.c:588
> #23 0x00007ffff77ce0e3 in master_service_run (service=0x555555796580,
> callback=<optimized out>) at master-service.c:640
> #24 0x0000555555561ab2 in main (argc=3, argv=0x555555796390) at main.c:454
> (gdb)
>
> One important info is that I used to use Alternate Storage on the older
> servers, but the not on the new one. Code seems to be trying to move a
> message to an alternate storage that doesn't exist.
>
> doveadm dump dovecot.index will show that we still have the
> ALTERNATE_STORAGE flag set:
>
> root at dovecot:/srv/dovecot/mail/
> mav.com.br/daniel.colchete/mailboxes/INBOX/dbox-Mails# doveadm dump
> dovecot.index|grep RECORD|head
> -- RECORDS: 932
> RECORD: seq=1, uid=9393, flags=0x49 (Seen Answered)
> RECORD: seq=2, uid=9442, flags=0x40
> RECORD: seq=3, uid=10253, flags=0x48 (Seen)
> RECORD: seq=4, uid=10268, flags=0x48 (Seen)
> RECORD: seq=5, uid=10283, flags=0x48 (Seen)
> RECORD: seq=6, uid=10309, flags=0x48 (Seen)
> RECORD: seq=7, uid=10311, flags=0x40
> RECORD: seq=8, uid=10324, flags=0x49 (Seen Answered)
> RECORD: seq=9, uid=10330, flags=0x48 (Seen)
>
> Thank you very much.
>
> Best,
> Daniel Colchete
>


More information about the dovecot mailing list