On Fri, 2005-10-14 at 00:47 -0400, Sergey A. Lipnevich wrote:
Hi All,
I have Dovecot 1.0 Alpha3 running on x86_64 Linux 2.6 multi-CPU box using Maildir folders. Moving messages from one folder to another in Thunderbird 1.0.7, regardless of their size (usually small), produced error 83, "Out of memory", when both of these parameters were unset (default): mail_read_mmaped, mmap_disable. The log line before the error was pool_system_malloc(): Out of memory.
This is a bug in Dovecot. It looks like it happens only with 64bit systems. Would you mind getting a gdb backtrace from that, it would help in fixing it? Works basically like:
- Open the mailbox in thunderbird
- gdb attach pid-of-the-imap-process-that's-going-to-move-the-messages
- Give "cont" command
- Move the messages and wait for crash
- Give "bt" command
- mail the reply to me
I initially changed mmap_disable to "yes", the error stopped, but it still wasn't moving messages reliably. I then set MM parameters more aggressively: mail_read_mmaped = yes, mmap_disable = no (and the third of the series, mmap_no_write, is left unset). The error stopped popping up, and the moving works speedily. Maybe the default for mail_read_mmaped should be "yes?"
That probably just goes around the buggy code path..