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

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


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