[Dovecot] GDB backtrace for OOM on x86_64 (was: "Out of memory" error in 1.0alpha3)

Andreas Fuchs asf at boinkor.net
Sun Nov 13 13:56:53 EET 2005


Hi all,

On 2005-10-27, Timo Sirainen <tss at iki.fi> wrote:
> [1  <text/plain (quoted-printable)>]
> On Sat, 2005-10-22 at 18:14 -0400, Sergey A. Lipnevich wrote:
>> With 1.0.alpha3, I'm still seeing an "Out of memory" error with one
>> Apple Mail user (but the user says everything works just fine), so
>> we're planning to upgrade to 1.0.alpha4 and take it from there.
>
> Well, I'm not sure. I suppose it could have happened to you because
> of it, if you really had been using epoll. If it still happens, a
> gdb backtrace really would be helpful in fixing it :)

I have a backtrace on 1.0.alpha4, amd64, 1 CPU, dovecot compiled with
gcc 4.0. I was getting the error with Wanderlust, getting the status
of some (not all) mailboxes.

Breakpoint 1, i_fatal_status (status=83, format=0x472bc0 "pool_system_malloc(): Out of memory") at failures.c:187
187     {
(gdb) bt
#0  i_fatal_status (status=83, format=0x472bc0 "pool_system_malloc(): Out of memory") at failures.c:187
#1  0x000000000046053e in pool_system_malloc (pool=Variable "pool" is not available.
) at mempool-system.c:73
#2  0x000000000043ecb6 in mail_index_keywords_create_from_indexes (t=0x599660, keyword_indexes=0x7fbffff7a0) at mail-index-transaction.c:905
#3  0x000000000041f1e7 in maildir_sync_index_finish (sync_ctx=0x597db0, partial=0) at maildir-sync.c:1049
#4  0x000000000041f6dd in maildir_sync_context (ctx=0x586358, forced=Variable "forced" is not available.
) at maildir-sync.c:1268
#5  0x000000000041f933 in maildir_storage_sync_init (box=0x59b680, flags=0) at maildir-sync.c:1325
#6  0x000000000041a000 in imap_sync_nonselected (box=Variable "box" is not available.
) at imap-sync.c:177
#7  0x0000000000413022 in cmd_status (cmd=0x590468) at cmd-status.c:68
#8  0x0000000000414319 in _client_input (context=Variable "context" is not available.
) at client.c:338
#9  0x000000000045e4a6 in io_loop_handler_run (ioloop=0x58ec70) at ioloop-poll.c:190
#10 0x000000000045d9dd in io_loop_run (ioloop=0x58ec70) at ioloop.c:230
#11 0x000000000041b841 in main (argc=Variable "argc" is not available.
) at main.c:232

Oh, and one more thing: The dying process leaves a .lock file behind,
dovecot-uidlist.lock. It causes all later processes to loop endlessly,
trying to acquire the lock. I thought processes should clean up after
themselves when they croak. (-:

Thanks,
-- 
Andreas Fuchs, <asf at boinkor.net>, asf at jabber.at, antifuchs



More information about the dovecot mailing list