A NOTE has been added to this issue. ====================================================================== http://www.dbmail.org/mantis/view.php?id=787 ====================================================================== Reported By: maximP Assigned To: ====================================================================== Project: DBMail Issue ID: 787 Category: IMAP daemon Reproducibility: sometimes Severity: crash Priority: normal Status: new target: ====================================================================== Date Submitted: 15-Jul-09 09:33 CEST Last Modified: 17-Jul-09 13:53 CEST ====================================================================== Summary: dbmail-imapd dies (OOM killer?) Description: Sometimes dbmail-imapd process dies without notices. Looks like there's a memory leak which results to killing the process. Communication buffer size was increased in 2.3.6, and the problem arises more often now.
PS. While this report is being written, resident memory usage of dbmail-imapd process grew from 60M to 70M. PPS. I have these errors in logs (several times per week): Warning:[mailbox] dbmail_mailbox_get_set(+1549): mailbox info out of sync: exists [544] ids [543] Error:[mailbox] mailbox_search(+1489): key missing in self->ids: [29086] Is it another problem? ====================================================================== ---------------------------------------------------------------------- (0002830) maximP (reporter) - 15-Jul-09 09:55 http://www.dbmail.org/mantis/view.php?id=787#c2830 ---------------------------------------------------------------------- After turning off IDLE usage in Thunderbird, dbmail-imapd process memory usage doesn't grow. ---------------------------------------------------------------------- (0002831) maximP (reporter) - 17-Jul-09 13:37 http://www.dbmail.org/mantis/view.php?id=787#c2831 ---------------------------------------------------------------------- Valgrind says: ==13267== 6,323,112 (6,322,944 direct, 168 indirect) bytes in 24 blocks are definitely lost in loss record 34 of 34 ==13267== at 0x4C23484: calloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so) ==13267== by 0x5FE3859: g_malloc0 (in /usr/lib64/libglib-2.0.so.0.1800.2) ==13267== by 0x40CB0A: imap_handle_input (imap4.c:352) ==13267== by 0x40C19F: imap_cb_read (imap4.c:154) ==13267== by 0x40C217: socket_read_cb (imap4.c:164) ==13267== by 0x66EF2C7: event_base_loop (in /usr/lib64/libevent-1.4.so.2.1.0) ==13267== by 0x4E72FA6: server_run (server.c:637) ==13267== by 0x4E734C1: server_mainloop (server.c:761) ==13267== by 0x41D746: main (imapd.c:70) The fragment of imap4.c: if ( session->command_type == IMAP_COMM_IDLE ) { // session is in a IDLE loop TRACE(TRACE_DEBUG,"read [%s] while in IDLE loop", buffer); session->command_state = FALSE; dm_thread_data *D = g_new0(dm_thread_data,1); <-------- this is line 352 D->data = (gpointer)g_strdup(buffer); g_async_queue_push(session->ci->queue, (gpointer)D); break; } Could it help to solve the problem? ---------------------------------------------------------------------- (0002832) maximP (reporter) - 17-Jul-09 13:53 http://www.dbmail.org/mantis/view.php?id=787#c2832 ---------------------------------------------------------------------- Fragment of imap_idle_loop function in imapcommands.c: data = g_async_queue_timed_pop(self->ci->queue, &end_time); if (data) { dm_thread_data *D = (gpointer)data; message = (char *)D->data; if (strlen(message) > 4 && strncasecmp(message,"DONE",4)==0) { return 0; } else if (strlen(message) > 0) { dbmail_imap_session_buff_printf(self,"%s BAD Expecting DONE\r\n", self->tag); dbmail_imap_session_buff_flush(self); } g_free(D->data); g_free(D); } else { .... I think not deleting D->data and D if message == "DONE" is the problem. Issue History Date Modified Username Field Change ====================================================================== 15-Jul-09 09:33 maximP New Issue 15-Jul-09 09:55 maximP Note Added: 0002830 17-Jul-09 13:37 maximP Note Added: 0002831 17-Jul-09 13:53 maximP Note Added: 0002832 ====================================================================== _______________________________________________ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev