On Thu, 29 Oct 2009 12:38:22 -0400 Timo Sirainen tss@iki.fi wrote:
On Thu, 2009-10-29 at 12:11 +0200, Nikita Koshikov wrote:
On Wed, 28 Oct 2009 14:17:52 -0400 Timo Sirainen tss@iki.fi wrote:
On Wed, 2009-10-28 at 10:39 +0200, Nikita Koshikov wrote:
Oct 26 15:26:38 IMAP(gozhda.a@domain.com): Panic: data stack: Out of memory when allocating 268435472 bytes Oct 26 15:26:38 IMAP(gozhda.a@domain.com): Error: *** glibc detected *** imap: double free or corruption (!prev): 0x0812ba00 ***
Oh, the double free is because of broken handling of out-of-memory error. http://hg.dovecot.org/dovecot-1.2/rev/acfef2f0fec3 probably fixes that.
Sorry, but this patch didn't help.
Not with the "out of memory", but did it get rid of the "double free or corruption" error?
The valgrind error is the same. I'll attach current valgrid output. Also, I have noticed, that valgrind writes vgcore.* files in user's homedir, I attach gdb backtrace from that file.
Hmm. So I guess there's no memory corruption causing this, but I don't really see why it would try to allocate that much memory. 268435472 in hex is 0x10000010, which is an interesting number but doesn't really help much either. 268435456 is 256M which is max mail_process_size config setting, maybe this values is in use ?
I guess it's just exponentially increasing the buffer size then until it reaches mail_process_size.
I recompile dovecot binaries with debug symbols, but seemed that gdb backtrace is broken.
Yeah, it is. Hmm. Since the core isn't working, can you attach gdb to imap process while it's still running? So something like:
- open the account so imap process starts
- gdb -p <imap process pid>
- gdb command: c
- cause imap to crash -> gdb should stop
- gdb command: bt full
The problem, that webmail don't keep permanent connection, so when I login - there are about 2-3 imap-login\disconnected log entries. And when I try to get directory listing the new process created for this operation and then crushes. Can gdb work in non-interactive mode ? so I can write wrapper to handle debug output ?
Also I enable imap_debug feature on webmail client, as you say - it stop working after client trying to access "All" virtual folder. The appropriate imap-session log part is also attached.
Note, I can't reproduce panic with Thunderbird, this happens in roundcube only.
All virtual folder config is:
cat /var/mail/virtual/.all/dovecot-virtual #All messages in all folders * all