On 23.6.2014, at 15.18, Bernhard Schmidt <berni@birkenwald.de> wrote:
we run Dovecot 2.2.13 on Debian Wheezy with a couple thousand mailboxes. We have two users that repeatedly trigger an OOM condition with IMAP.
Jun 23 12:53:21 lxmhs74 dovecot: imap(USER): Fatal: pool_system_realloc(268435456): Out of memory .. #6 0x00007f11766e6cda in o_stream_grow_buffer (fstream=fstream@entry=0x7f11789f41c0, bytes=<optimized out>) at ostream-file.c:440 size = 268435456 new_size = <optimized out> end_size = <optimized out> .. #11 0x00007f1175692849 in o_stream_zlib_send_outbuf (zstream=0x7f11789f9340) at ostream-zlib.c:94 ret = <optimized out> size = 12113 #12 0x00007f1175692982 in o_stream_zlib_send_flush (zstream=zstream@entry=0x7f11789f9340, final=final@entry=true) at ostream-zlib.c:189
This is most likely because of the IMAP COMPRESS extension, which causes the output stream buffer to get really large. So the easiest fix would be to just disable imap_zlib plugin and it'll probably work. But this should get fixed properly.. I just can't figure out how this can happen. What was the IMAP client doing that caused it? Could you run a few more gdb commands:
#17 0x00007f1176e8d269 in client_output (client=0x7f11789f4470) at imap-client.c:1019
Assuming client_output is again in frame 17, run:
f 17 p *client.command_queue p *client.command_queue.next