[Dovecot] mailbox count folders issues

Nikita Koshikov koshikov at gmail.com
Fri Oct 30 10:46:38 EET 2009


On Thu, 29 Oct 2009 12:38:22 -0400
Timo Sirainen <tss at 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 at iki.fi> wrote:
> > 
> > > On Wed, 2009-10-28 at 10:39 +0200, Nikita Koshikov wrote:
> > > > > > Oct 26 15:26:38 IMAP(gozhda.a at domain.com): Panic: data stack: Out of memory when allocating 268435472 bytes
> > > > > > Oct 26 15:26:38 IMAP(gozhda.a at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vcore-gdb.trace
Type: application/octet-stream
Size: 5234 bytes
Desc: not available
Url : http://dovecot.org/pipermail/dovecot/attachments/20091030/a03701e5/attachment-0002.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dovecot-error.valgrind
Type: application/octet-stream
Size: 5625 bytes
Desc: not available
Url : http://dovecot.org/pipermail/dovecot/attachments/20091030/a03701e5/attachment-0003.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: imap-session.log
Type: text/x-log
Size: 5945 bytes
Desc: not available
Url : http://dovecot.org/pipermail/dovecot/attachments/20091030/a03701e5/attachment-0001.bin 


More information about the dovecot mailing list