We uograded our dovecot from version 2.1.10 -> 2.10.12, but within the first hour of use, dovecot-lda would segfault during delivery. This left a lock file lying around causing the user's mail readers to hang; much hilarity ensues. All further deliveries to the same user will result in a crash.
The only thing that fixes this condition is to blow away the user's INBOX cache index. Reindexing with "doveadm index" does not fix anything. I've installed a test version with one user's problematic INBOX cache indices and ran gdb dovecot-lda (gdb) run -t testuser </dev/null and it crashes with the following backtrace Program received signal SIGSEGV, Segmentation fault. 0xff2a0440 in mail_cache_header_fields_read (cache=0x5c120) at mail-cache-fields.c:323 323 if (field_hdr->size < sizeof(*field_hdr) + (gdb) bt #0 0xff2a0440 in mail_cache_header_fields_read (cache=0x5c120) at mail-cache-fields.c:323 #1 0xff29e8bc in mail_cache_compress_locked (cache=0x5c120, trans=0x63ce8, unlock=0xffbfeeef) at mail-cache-compress.c:361 #2 0xff29efd0 in mail_cache_compress (cache=0x5c120, trans=0x63ce8) at mail-cache-compress.c:489 #3 0xff2a3df4 in mail_cache_transaction_compress (ctx=0x5dac0) at mail-cache-transaction.c:180 #4 0xff2a4084 in mail_cache_transaction_open_if_needed (ctx=0x5dac0) at mail-cache-transaction.c:241 #5 0xff2a6e60 in mail_cache_field_want_add (ctx=0x5dac0, seq=1, field_idx=12) at mail-cache-transaction.c:1048 #6 0xff27e8e8 in index_mail_parse_header_register_all_wanted (mail=0x5e6b0) at index-mail-headers.c:175 #7 0xff27ec90 in index_mail_parse_header_init (mail=0x5e6b0, headers=0x0) at index-mail-headers.c:230 #8 0xff27f5c8 in index_mail_cache_parse_init (_mail=0x5e6b0, input=0x63760) at index-mail-headers.c:376 #9 0xff2299cc in mbox_save_get_input_stream (ctx=0x5dde8, input=0x62ed0) at mbox-save.c:411 #10 0xff22a084 in mbox_save_begin (_ctx=0x5dde8, input=0x62ed0) at mbox-save.c:520 #11 0xff24e9c0 in mailbox_save_begin (ctx=0xffbff514, input=0x62ed0) at mail-storage.c:1652 #12 0xff23f138 in mail_storage_try_copy (_ctx=0xffbff514, mail=0x54cd8) at mail-copy.c:68 #13 0xff23f23c in mail_storage_copy (ctx=0x5dde8, mail=0x54cd8) at mail-copy.c:93 #14 0xff24ec28 in mailbox_copy (_ctx=0xffbff670, mail=0x54cd8) at mail-storage.c:1721 #15 0xff24ec98 in mailbox_save_using_mail (ctx=0xffbff670, mail=0x54cd8) at mail-storage.c:1730 #16 0xff388070 in mail_deliver_save (ctx=0xffbff8a8, mailbox=0x13fe8 "INBOX", flags=0, keywords=0x0, storage_r=0xffbff83c) at mail-deliver.c:317 #17 0xff38869c in mail_deliver (ctx=0xffbff8a8, storage_r=0xffbff83c) at mail-deliver.c:403 #18 0x00012d08 in main (argc=3, argv=0xffbff964) at main.c:434 I dumped the value of field_hdr, and it has some bogus value (gdb) p field_hdr $1 = (const struct mail_cache_header_fields *) 0x20 Other observations - blowing away the indices does not fix it permanantly. The the LDA will eventually start crashing again. - the problematic indices do not cause problems with 2.1.10. Reverting to 2.1.10 restores proper mail delivery. Is this enough debug info to work your magic, Timo? I can supply the cache data if you neded it. It's compiled on a Solaris10. Joseph Tam <jtam.h...@gmail.com>