On Thu, 2012-12-13 at 03:56 -0800, Joseph Tam wrote:
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
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) p field_hdr $1 = (const struct mail_cache_header_fields *) 0x20
So mail_cache_map() returned a broken pointer..
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.
Can you still reproduce this in any way? I found two bugs, would be nice to know if they solve it:
http://hg.dovecot.org/dovecot-2.1/rev/2f848393f78e http://hg.dovecot.org/dovecot-2.1/rev/bded819417d9