Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: DBMail: dev

[DBMail 0000787]: dbmail-imapd dies (OOM killer?)

 

 

DBMail dev RSS feed   Index | Next | Previous | View Threaded


bugtrack at dbmail

Jul 15, 2009, 12:34 AM

Post #1 of 7 (1067 views)
Permalink
[DBMail 0000787]: dbmail-imapd dies (OOM killer?)

The following issue has been SUBMITTED.
======================================================================
http://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: 15-Jul-09 09:33 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?
======================================================================

Issue History
Date Modified Username Field Change
======================================================================
15-Jul-09 09:33 maximP New Issue
======================================================================

_______________________________________________
Dbmail-dev mailing list
Dbmail-dev [at] dbmail
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev


bugtrack at dbmail

Jul 15, 2009, 12:55 AM

Post #2 of 7 (1002 views)
Permalink
[DBMail 0000787]: dbmail-imapd dies (OOM killer?) [In reply to]

A NOTE has been added to this issue.
======================================================================
http://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: 15-Jul-09 09:55 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://dbmail.org/mantis/view.php?id=787#c2830
----------------------------------------------------------------------
After turning off IDLE usage in Thunderbird, dbmail-imapd process memory
usage doesn't grow.

Issue History
Date Modified Username Field Change
======================================================================
15-Jul-09 09:33 maximP New Issue
15-Jul-09 09:55 maximP Note Added: 0002830
======================================================================

_______________________________________________
Dbmail-dev mailing list
Dbmail-dev [at] dbmail
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev


bugtrack at dbmail

Jul 17, 2009, 4:37 AM

Post #3 of 7 (988 views)
Permalink
[DBMail 0000787]: dbmail-imapd dies (OOM killer?) [In reply to]

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:37 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?

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
======================================================================

_______________________________________________
Dbmail-dev mailing list
Dbmail-dev [at] dbmail
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev


bugtrack at dbmail

Jul 17, 2009, 4:53 AM

Post #4 of 7 (989 views)
Permalink
[DBMail 0000787]: dbmail-imapd dies (OOM killer?) [In reply to]

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 [at] dbmail
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev


bugtrack at dbmail

Jul 17, 2009, 7:42 AM

Post #5 of 7 (987 views)
Permalink
[DBMail 0000787]: dbmail-imapd dies (OOM killer?) [In reply to]

A NOTE has been added to this issue.
======================================================================
http://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 16:42 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://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://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://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.

----------------------------------------------------------------------
(0002833) maximP (reporter) - 17-Jul-09 16:42
http://dbmail.org/mantis/view.php?id=787#c2833
----------------------------------------------------------------------
Looks like this patch solves the problem.

--- imapcommands.c.orig 2009-06-28 17:48:24.000000000 +0400
+++ imapcommands.c 2009-07-17 18:15:52.000000000 +0400
@@ -1085,6 +1085,8 @@
dm_thread_data *D = (gpointer)data;
message = (char *)D->data;
if (strlen(message) > 4 &&
strncasecmp(message,"DONE",4)==0) {
+ g_free(D->data);
+ g_free(D);
return 0;
} else if (strlen(message) > 0) {
dbmail_imap_session_buff_printf(self,"%s
BAD Expecting DONE\r\n", self->tag);

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
17-Jul-09 16:42 maximP Note Added: 0002833
======================================================================

_______________________________________________
Dbmail-dev mailing list
Dbmail-dev [at] dbmail
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev


bugtrack at dbmail

Jul 17, 2009, 1:41 PM

Post #6 of 7 (985 views)
Permalink
[DBMail 0000787]: dbmail-imapd dies (OOM killer?) [In reply to]

A NOTE has been added to this issue.
======================================================================
http://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 22:41 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://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://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://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.

----------------------------------------------------------------------
(0002833) maximP (reporter) - 17-Jul-09 16:42
http://dbmail.org/mantis/view.php?id=787#c2833
----------------------------------------------------------------------
Looks like this patch solves the problem.

--- imapcommands.c.orig 2009-06-28 17:48:24.000000000 +0400
+++ imapcommands.c 2009-07-17 18:15:52.000000000 +0400
@@ -1085,6 +1085,8 @@
dm_thread_data *D = (gpointer)data;
message = (char *)D->data;
if (strlen(message) > 4 &&
strncasecmp(message,"DONE",4)==0) {
+ g_free(D->data);
+ g_free(D);
return 0;
} else if (strlen(message) > 0) {
dbmail_imap_session_buff_printf(self,"%s
BAD Expecting DONE\r\n", self->tag);

----------------------------------------------------------------------
(0002834) paul (administrator) - 17-Jul-09 22:41
http://dbmail.org/mantis/view.php?id=787#c2834
----------------------------------------------------------------------
Thanks again Maxim.

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
17-Jul-09 16:42 maximP Note Added: 0002833
17-Jul-09 22:41 paul Note Added: 0002834
======================================================================

_______________________________________________
Dbmail-dev mailing list
Dbmail-dev [at] dbmail
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev


bugtrack at dbmail

Jul 17, 2009, 1:42 PM

Post #7 of 7 (986 views)
Permalink
[DBMail 0000787]: dbmail-imapd dies (OOM killer?) [In reply to]

The following issue has been RESOLVED.
======================================================================
http://dbmail.org/mantis/view.php?id=787
======================================================================
Reported By: maximP
Assigned To: paul
======================================================================
Project: DBMail
Issue ID: 787
Category: IMAP daemon
Reproducibility: sometimes
Severity: crash
Priority: normal
Status: resolved
target:
Resolution: fixed
Fixed in Version:
======================================================================
Date Submitted: 15-Jul-09 09:33 CEST
Last Modified: 17-Jul-09 22:42 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://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://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://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.

----------------------------------------------------------------------
(0002833) maximP (reporter) - 17-Jul-09 16:42
http://dbmail.org/mantis/view.php?id=787#c2833
----------------------------------------------------------------------
Looks like this patch solves the problem.

--- imapcommands.c.orig 2009-06-28 17:48:24.000000000 +0400
+++ imapcommands.c 2009-07-17 18:15:52.000000000 +0400
@@ -1085,6 +1085,8 @@
dm_thread_data *D = (gpointer)data;
message = (char *)D->data;
if (strlen(message) > 4 &&
strncasecmp(message,"DONE",4)==0) {
+ g_free(D->data);
+ g_free(D);
return 0;
} else if (strlen(message) > 0) {
dbmail_imap_session_buff_printf(self,"%s
BAD Expecting DONE\r\n", self->tag);

----------------------------------------------------------------------
(0002834) paul (administrator) - 17-Jul-09 22:41
http://dbmail.org/mantis/view.php?id=787#c2834
----------------------------------------------------------------------
Thanks again Maxim.

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
17-Jul-09 16:42 maximP Note Added: 0002833
17-Jul-09 22:41 paul Note Added: 0002834
17-Jul-09 22:42 paul Assigned To => paul
17-Jul-09 22:42 paul Status new => resolved
17-Jul-09 22:42 paul Resolution open => fixed
======================================================================

_______________________________________________
Dbmail-dev mailing list
Dbmail-dev [at] dbmail
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev

DBMail dev RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.