[Dovecot] Segfault in imap_bodystructure_write when searching

Christer Mjellem Strand christer at mjellem.no
Sun Jun 1 19:50:24 EEST 2008

>> This latest crash I can reproduce by just trying to open the
>> mailbox, no searching necessary.
> Is it with the files you sent me or some other mailbox?

The files I sent you. The search issue I haven't been able to reproduce since 
last night.

>>> One way to maybe avoid gdb backtrace corruption is to attach gdb
>>> while
>>> the process is still running. Like:
>>> 1. Log in so imap process exists
>>> 2. gdb /usr/lib/dovecot/imap `pidof imap`
>>> 3. cont
>>> 4. make it crash
>>> 5. bt full
>> I have very limited gdb experience, and can't seem to make this work
>> as intended. I've restarted dovecot and logged in so only one imap
>> process exists, and attached to that. However, it seems that this
>> process keeps on running, and instead spawns children, and they're
>> the ones that die immediately.
>> The main process stays alive, and no backtrace is generated when I
>> just kill dovecot to stop the loop..
> Only dovecot process forks new processes. I guess it's possible that your
> IMAP client works by first creating one connection (first imap process) and
> then when selecting the mailbox logs in using a new connection.

Aha, that does indeed sound probable, and seems to fit well with what I'm 
seeing in the logs.

>> Any pointers as to how I could attach gdb to any of those processes,
>> or other ways to proceed?
> How about manually:
> telnet localhost 143
> a login user pass
> << gdb attach >>
> b select mailbox

No crash :\

I could always fire up wireshark or something to try to figure out what my 
client (Mulberry) is actually doing, but that still wouldn't log the crasher..

  -==-                  -=-                  -==-
   Christer Mjellem Strand               yitzhaq
   System administrator             ICQ: 9557698
   GSM +47 922 000 12     JID: yitzhaq at jabber.no
  -==-                  -=-                  -==-

More information about the dovecot mailing list