[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
The following issue has been SUBMITTED. == http://www.dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 20-Mar-07 15:07 CET == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == Issue History Date Modified Username FieldChange == 20-Mar-07 15:07 idkNew Issue == ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
A NOTE has been added to this issue. == http://dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 23-Mar-07 02:18 CET == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. Issue History Date Modified Username FieldChange == 20-Mar-07 15:07 idkNew Issue 23-Mar-07 02:18 aaron Note Added: 0001944 == ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
A NOTE has been added to this issue. == http://dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 23-Mar-07 11:18 CET == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. -- idk - 23-Mar-07 11:18 -- >From upgrading to rev. 2471 it didn't occurred. I restared by init script (service dbmail-imapd restart) many times (but this is not a SIGHUP, but stop/start, so killproc and new start). BTW often during restarting of a daemon occurrs this issue: Stopping say OK, but startning say already running with list of pids. After a while next restart: stopping say FAILED and starting say OK. No errors are logged. I have tried service dbmail-imapd reload (so SIGHUP, killproc $dbmail -HUP), process is ok and no error message was reported. Issue History Date Modified Username FieldChange == 20-Mar-07 15:07 idkNew Issue 23-Mar-07 02:18 aaron Note Added: 0001944 23-Mar-07 11:18 idkNote Added: 0001948 == ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
A NOTE has been added to this issue. == http://dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 23-Mar-07 11:24 CET == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. -- idk - 23-Mar-07 11:18 -- >From upgrading to rev. 2471 it didn't occurred. I restared by init script (service dbmail-imapd restart) many times (but this is not a SIGHUP, but stop/start, so killproc and new start). BTW often during restarting of a daemon occurrs this issue: Stopping say OK, but startning say already running with list of pids. After a while next restart: stopping say FAILED and starting say OK. No errors are logged. I have tried service dbmail-imapd reload (so SIGHUP, killproc $dbmail -HUP), process is ok and no error message was reported. -- idk - 23-Mar-07 11:24 -- After SIGHUP daemon stop to listen :( Telnet to lmtp connects to a port and say # telnet localhost lmtp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Connection closed by foreign host. A had to restart them (imapd too). Issue History Date Modified Username FieldChange == 20-Mar-07 15:07 idkNew Issue 23-Mar-07 02:18 aaron Note Added: 0001944 23-Mar-07 11:18 idkNote Added: 0001948 23-Mar-07 11:24 idkNote Added: 0001949 == ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
A NOTE has been added to this issue. == http://dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 23-Mar-07 11:55 CET == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. -- idk - 23-Mar-07 11:18 -- >From upgrading to rev. 2471 it didn't occurred. I restared by init script (service dbmail-imapd restart) many times (but this is not a SIGHUP, but stop/start, so killproc and new start). BTW often during restarting of a daemon occurrs this issue: Stopping say OK, but startning say already running with list of pids. After a while next restart: stopping say FAILED and starting say OK. No errors are logged. I have tried service dbmail-imapd reload (so SIGHUP, killproc $dbmail -HUP), process is ok and no error message was reported. -- idk - 23-Mar-07 11:24 -- After SIGHUP daemon stop to listen :( Telnet to lmtp connects to a port and say # telnet localhost lmtp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Connection closed by foreign host. A had to restart them (imapd too). -- idk - 23-Mar-07 11:55 -- A'll attach three mail files, original (mail about this issue), subject-8bit (original with altered Subject, only 8 bit chars stills, WIN charset) and subject-escaped (the same as subject-8bit, but encoded and escaped into ISO). mysql> SELECT HEX(headervalue) FROM dbmail_headervalue WHERE headername_id = 7 AND physmessage_id IN (274672,274673,274674); 566964656F70726F686CC3AD646B612076656C65747268752072796261C599656EC3AD20762042726EC49B2032303037 C3AD20C599C3AD2078207820782078207820782078207820782078207820782078207820C49B C3AD20C599C3AD2078207820782078207820782078207820782078207820782078207820C49B mysql> SELECT envelope FROM dbmail_envelope WHERE physmessage_id IN (274672,274673,274674); ("Wed, 21 Mar 2007 18:09:41 +0100" "=?UTF-8?q?Videoprohl=C3=ADdka_veletrhu_ryba=C5=99en=C3=AD_?= =?iso-8859-2?q?v_Brn=EC?= 2007" ((NIL NIL "chytej" "chytej.cz")) ((NIL NIL "chytej" "chytej.cz")) ((NIL NIL "chytej" "chytej.cz")) ((NIL NIL "undisclosed-recipients" NIL)) NIL NIL NIL "<[EMAIL PROTECTED]>") ("Wed, 21 Mar 2007 18:09:41 +0100" "=?UTF-8?b?w60gxZnDrSA=?= =?iso-8859-2?q?x_x_x_x_x_x_x_x_x_x_x_x_x_x_=EC?=" ((NIL NIL "chytej" "chytej.cz")) ((NIL NIL "chytej" "chytej.cz")) ((NIL NIL "chytej" "chytej.cz")) ((NIL NIL "undisclosed-recipients" NIL)) NIL NIL NIL "<[EMAIL PROTECTED]>") ("Wed, 21 Mar 2007 18:09:41 +0100" "=?iso-8859-2?Q?=ED_=F8=ED_x_x_x_x_x_x_x_x_x_x_x_x_x_x_=EC?=" ((NIL NIL "chytej" "chytej.cz")) ((NIL NIL "chytej" "chytej.cz")) ((NIL NIL "chytej" "chytej.cz")) ((NIL NIL "undisclosed-recipients" NIL)) NIL NIL NIL "<[EMAIL PROTECTED]>") Issue History Date Modified Username FieldChange == 20-Mar-07 15:07 idkNew Issue 23-Mar-07 02:18 aaron Note Added: 0001944 23-Mar-07 11:18 idkNote Added: 0001948 23-Mar-07 11:24 idkNote Added: 0001949 23-Mar-07 11:55 idkNote Added: 0001950
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
A NOTE has been added to this issue. == http://dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 24-Mar-07 22:19 CET == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. -- idk - 23-Mar-07 11:18 -- >From upgrading to rev. 2471 it didn't occurred. I restared by init script (service dbmail-imapd restart) many times (but this is not a SIGHUP, but stop/start, so killproc and new start). BTW often during restarting of a daemon occurrs this issue: Stopping say OK, but startning say already running with list of pids. After a while next restart: stopping say FAILED and starting say OK. No errors are logged. I have tried service dbmail-imapd reload (so SIGHUP, killproc $dbmail -HUP), process is ok and no error message was reported. -- idk - 23-Mar-07 11:24 -- After SIGHUP daemon stop to listen :( Telnet to lmtp connects to a port and say # telnet localhost lmtp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Connection closed by foreign host. A had to restart them (imapd too). -- aaron - 24-Mar-07 22:19 -- Oh crap, I've confirmed that I SIGHUP handling very badly. Probably will rearrange the code more significantly to make it very obvious what is happening. Too many functions have side-effects on the config struct. Issue History Date Modified Username FieldChange == 20-Mar-07 15:07 idkNew Issue 23-Mar-07 02:18 aaron Note Added: 0001944 23-Mar-07 11:18 idkNote Added: 0001948 23-Mar-07 11:24 idkNote Added: 0001949 23-Mar-07 11:55 idkNote Added: 0001950 23-Mar-07 11:55 idkNote Deleted: 0001950 24-Mar-07 22:19 aaron Note Added: 0001961 == ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
A NOTE has been added to this issue. == http://dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 24-Mar-07 23:32 CET == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. -- idk - 23-Mar-07 11:18 -- >From upgrading to rev. 2471 it didn't occurred. I restared by init script (service dbmail-imapd restart) many times (but this is not a SIGHUP, but stop/start, so killproc and new start). BTW often during restarting of a daemon occurrs this issue: Stopping say OK, but startning say already running with list of pids. After a while next restart: stopping say FAILED and starting say OK. No errors are logged. I have tried service dbmail-imapd reload (so SIGHUP, killproc $dbmail -HUP), process is ok and no error message was reported. -- idk - 23-Mar-07 11:24 -- After SIGHUP daemon stop to listen :( Telnet to lmtp connects to a port and say # telnet localhost lmtp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Connection closed by foreign host. A had to restart them (imapd too). -- aaron - 24-Mar-07 22:19 -- Oh crap, I've confirmed that I SIGHUP handling very badly. Probably will rearrange the code more significantly to make it very obvious what is happening. Too many functions have side-effects on the config struct. -- aaron - 24-Mar-07 23:32 -- Ok, I see what this bug might actually be about, and SIGHUP was me being stupid and has nothing to do with the issue here. In dbmail-imapsession.c, 'the_args' is an array of parsed out imap command arguments. It is static memory that is passed around a lot. Someplace this must not be going according to plan. Would it be possible to trace the imap commands leading up to this error? Issue History Date Modified Username FieldChange == 20-Mar-07 15:07 idkNew Issue 23-Mar-07 02:18 aaron Note Added: 0001944 23-Mar-07 11:18 idkNote Added: 0001948 23-Mar-07 11:24 idkNote Added: 0001949 23-Mar-07 11:55 idkNote Added: 0001950 23-Mar-07 11:55 idkNote Deleted: 0001950 24-Mar-07 22:19 aaron Note Added: 0001961 24-Mar-07 23:32 aaron Note Added: 0001963 == ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
A NOTE has been added to this issue. == http://www.dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 25-Mar-07 05:14 CEST == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. -- idk - 23-Mar-07 11:18 -- >From upgrading to rev. 2471 it didn't occurred. I restared by init script (service dbmail-imapd restart) many times (but this is not a SIGHUP, but stop/start, so killproc and new start). BTW often during restarting of a daemon occurrs this issue: Stopping say OK, but startning say already running with list of pids. After a while next restart: stopping say FAILED and starting say OK. No errors are logged. I have tried service dbmail-imapd reload (so SIGHUP, killproc $dbmail -HUP), process is ok and no error message was reported. -- idk - 23-Mar-07 11:24 -- After SIGHUP daemon stop to listen :( Telnet to lmtp connects to a port and say # telnet localhost lmtp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Connection closed by foreign host. A had to restart them (imapd too). -- aaron - 24-Mar-07 22:19 -- Oh crap, I've confirmed that I SIGHUP handling very badly. Probably will rearrange the code more significantly to make it very obvious what is happening. Too many functions have side-effects on the config struct. -- aaron - 24-Mar-07 23:32 -- Ok, I see what this bug might actually be about, and SIGHUP was me being stupid and has nothing to do with the issue here. In dbmail-imapsession.c, 'the_args' is an array of parsed out imap command arguments. It is static memory that is passed around a lot. Someplace this must not be going according to plan. Would it be possible to trace the imap commands leading up to this error? -- ljackson - 25-Mar-07 05:14 -- I belive I have found the cause of this issue, in the way ic_uid was doing pointer math on the args array. in the patch I have attached dbmail-svn-2.2.4-2480.bug546.imap_args.diff it moves the imap args to only the session and removes the global variable, it also moves all indexing of the imap args to a session variable as well. This allows ic_uid to increment the place in the args without killing the pointer. the new args array is allocated on session creation with g_new0 and g_free'ed at the end of a session it passes with all function from testimap.py and valgrind. But please test. -leif Issue History Date Modified Username FieldChange == 20-Mar-07 15:07 idkNew Issue 23-Mar-07 02:18 aaron Note Added: 0001944 23-Mar-07 11:18 idkNote Added: 0001948 23-Mar-07 11:24 idkNote Added: 0001949 23-Mar-07 11:55 idkNote Added: 0001950 23-Mar-07 11:55 idk
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
A NOTE has been added to this issue. == http://www.dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 25-Mar-07 16:35 CEST == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. -- idk - 23-Mar-07 11:18 -- >From upgrading to rev. 2471 it didn't occurred. I restared by init script (service dbmail-imapd restart) many times (but this is not a SIGHUP, but stop/start, so killproc and new start). BTW often during restarting of a daemon occurrs this issue: Stopping say OK, but startning say already running with list of pids. After a while next restart: stopping say FAILED and starting say OK. No errors are logged. I have tried service dbmail-imapd reload (so SIGHUP, killproc $dbmail -HUP), process is ok and no error message was reported. -- idk - 23-Mar-07 11:24 -- After SIGHUP daemon stop to listen :( Telnet to lmtp connects to a port and say # telnet localhost lmtp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Connection closed by foreign host. A had to restart them (imapd too). -- aaron - 24-Mar-07 22:19 -- Oh crap, I've confirmed that I SIGHUP handling very badly. Probably will rearrange the code more significantly to make it very obvious what is happening. Too many functions have side-effects on the config struct. -- aaron - 24-Mar-07 23:32 -- Ok, I see what this bug might actually be about, and SIGHUP was me being stupid and has nothing to do with the issue here. In dbmail-imapsession.c, 'the_args' is an array of parsed out imap command arguments. It is static memory that is passed around a lot. Someplace this must not be going according to plan. Would it be possible to trace the imap commands leading up to this error? -- ljackson - 25-Mar-07 05:14 -- I belive I have found the cause of this issue, in the way ic_uid was doing pointer math on the args array. in the patch I have attached dbmail-svn-2.2.4-2480.bug546.imap_args.diff it moves the imap args to only the session and removes the global variable, it also moves all indexing of the imap args to a session variable as well. This allows ic_uid to increment the place in the args without killing the pointer. the new args array is allocated on session creation with g_new0 and g_free'ed at the end of a session it passes with all function from testimap.py and valgrind. But please test. -leif -- paul - 25-Mar-07 16:35 -- I've applied Leifs patch. (with some additional fixes cause the unit tests where broken :)=) Issue History Date Modified Username FieldChange == 20-Mar-07 15:07 idkNew Issue 23-Mar-07 02:18 aaron Note Added: 0001944
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
A NOTE has been added to this issue. == http://www.dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 12-Apr-07 15:23 CEST == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. -- idk - 23-Mar-07 11:18 -- >From upgrading to rev. 2471 it didn't occurred. I restared by init script (service dbmail-imapd restart) many times (but this is not a SIGHUP, but stop/start, so killproc and new start). BTW often during restarting of a daemon occurrs this issue: Stopping say OK, but startning say already running with list of pids. After a while next restart: stopping say FAILED and starting say OK. No errors are logged. I have tried service dbmail-imapd reload (so SIGHUP, killproc $dbmail -HUP), process is ok and no error message was reported. -- idk - 23-Mar-07 11:24 -- After SIGHUP daemon stop to listen :( Telnet to lmtp connects to a port and say # telnet localhost lmtp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Connection closed by foreign host. A had to restart them (imapd too). -- aaron - 24-Mar-07 22:19 -- Oh crap, I've confirmed that I SIGHUP handling very badly. Probably will rearrange the code more significantly to make it very obvious what is happening. Too many functions have side-effects on the config struct. -- aaron - 24-Mar-07 23:32 -- Ok, I see what this bug might actually be about, and SIGHUP was me being stupid and has nothing to do with the issue here. In dbmail-imapsession.c, 'the_args' is an array of parsed out imap command arguments. It is static memory that is passed around a lot. Someplace this must not be going according to plan. Would it be possible to trace the imap commands leading up to this error? -- ljackson - 25-Mar-07 05:14 -- I belive I have found the cause of this issue, in the way ic_uid was doing pointer math on the args array. in the patch I have attached dbmail-svn-2.2.4-2480.bug546.imap_args.diff it moves the imap args to only the session and removes the global variable, it also moves all indexing of the imap args to a session variable as well. This allows ic_uid to increment the place in the args without killing the pointer. the new args array is allocated on session creation with g_new0 and g_free'ed at the end of a session it passes with all function from testimap.py and valgrind. But please test. -leif -- paul - 25-Mar-07 16:35 -- I've applied Leifs patch. (with some additional fixes cause the unit tests where broken :)=) -- idk - 12-Apr-07 15:23 -- *** glibc detected *** /usr/sbin/dbmail-imapd: corrupted double-linked list: 0x09c5db60 *** === Backtrace: = /lib/libc.so.6[
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
A NOTE has been added to this issue. == http://www.dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 14-May-07 06:46 CEST == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. -- idk - 23-Mar-07 11:18 -- >From upgrading to rev. 2471 it didn't occurred. I restared by init script (service dbmail-imapd restart) many times (but this is not a SIGHUP, but stop/start, so killproc and new start). BTW often during restarting of a daemon occurrs this issue: Stopping say OK, but startning say already running with list of pids. After a while next restart: stopping say FAILED and starting say OK. No errors are logged. I have tried service dbmail-imapd reload (so SIGHUP, killproc $dbmail -HUP), process is ok and no error message was reported. -- idk - 23-Mar-07 11:24 -- After SIGHUP daemon stop to listen :( Telnet to lmtp connects to a port and say # telnet localhost lmtp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Connection closed by foreign host. A had to restart them (imapd too). -- aaron - 24-Mar-07 22:19 -- Oh crap, I've confirmed that I SIGHUP handling very badly. Probably will rearrange the code more significantly to make it very obvious what is happening. Too many functions have side-effects on the config struct. -- aaron - 24-Mar-07 23:32 -- Ok, I see what this bug might actually be about, and SIGHUP was me being stupid and has nothing to do with the issue here. In dbmail-imapsession.c, 'the_args' is an array of parsed out imap command arguments. It is static memory that is passed around a lot. Someplace this must not be going according to plan. Would it be possible to trace the imap commands leading up to this error? -- ljackson - 25-Mar-07 05:14 -- I belive I have found the cause of this issue, in the way ic_uid was doing pointer math on the args array. in the patch I have attached dbmail-svn-2.2.4-2480.bug546.imap_args.diff it moves the imap args to only the session and removes the global variable, it also moves all indexing of the imap args to a session variable as well. This allows ic_uid to increment the place in the args without killing the pointer. the new args array is allocated on session creation with g_new0 and g_free'ed at the end of a session it passes with all function from testimap.py and valgrind. But please test. -leif -- paul - 25-Mar-07 16:35 -- I've applied Leifs patch. (with some additional fixes cause the unit tests where broken :)=) -- idk - 12-Apr-07 15:32 -- *** glibc detected *** /usr/sbin/dbmail-imapd: corrupted double-linked list: 0x09c5db60 *** === Backtrace: = /lib/libc.so.6[
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
The following issue has been set as RELATED TO issue 555. == http://www.dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To: == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: new target: == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 14-May-07 06:46 CEST == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == Relationships ID Summary -- related to 555 Some errors on dbmail.err == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. -- idk - 23-Mar-07 11:18 -- >From upgrading to rev. 2471 it didn't occurred. I restared by init script (service dbmail-imapd restart) many times (but this is not a SIGHUP, but stop/start, so killproc and new start). BTW often during restarting of a daemon occurrs this issue: Stopping say OK, but startning say already running with list of pids. After a while next restart: stopping say FAILED and starting say OK. No errors are logged. I have tried service dbmail-imapd reload (so SIGHUP, killproc $dbmail -HUP), process is ok and no error message was reported. -- idk - 23-Mar-07 11:24 -- After SIGHUP daemon stop to listen :( Telnet to lmtp connects to a port and say # telnet localhost lmtp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Connection closed by foreign host. A had to restart them (imapd too). -- aaron - 24-Mar-07 22:19 -- Oh crap, I've confirmed that I SIGHUP handling very badly. Probably will rearrange the code more significantly to make it very obvious what is happening. Too many functions have side-effects on the config struct. -- aaron - 24-Mar-07 23:32 -- Ok, I see what this bug might actually be about, and SIGHUP was me being stupid and has nothing to do with the issue here. In dbmail-imapsession.c, 'the_args' is an array of parsed out imap command arguments. It is static memory that is passed around a lot. Someplace this must not be going according to plan. Would it be possible to trace the imap commands leading up to this error? -- ljackson - 25-Mar-07 05:14 -- I belive I have found the cause of this issue, in the way ic_uid was doing pointer math on the args array. in the patch I have attached dbmail-svn-2.2.4-2480.bug546.imap_args.diff it moves the imap args to only the session and removes the global variable, it also moves all indexing of the imap args to a session variable as well. This allows ic_uid to increment the place in the args without killing the pointer. the new args array is allocated on session creation with g_new0 and g_free'ed at the end of a session it passes with all function from testimap.py and valgrind. But please test. -leif -- paul - 25-Mar-07 16:35 -- I've applied Leifs patch. (with some additional fixes cause the unit tests where broken :)=)
[Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
The following issue has been RESOLVED. == http://www.dbmail.org/mantis/view.php?id=546 == Reported By:idk Assigned To:paul == Project:DBMail Issue ID: 546 Category: IMAP daemon Reproducibility:unable to reproduce Severity: minor Priority: normal Status: resolved target: Resolution: fixed Fixed in Version: 2.2.5 == Date Submitted: 20-Mar-07 15:07 CET Last Modified: 30-May-07 15:08 CEST == Summary:Memory corrupted in IMAP daemon Description: I don't know what action causes this problem, but I seldom read the dbmail.err file and I found some errors (see Additional Information). Due a nonexistency of timestamp in logfile I don't know if this three issues are relatives. == Relationships ID Summary -- related to 555 Some errors on dbmail.err == -- aaron - 23-Mar-07 02:18 -- Does this possibly happen right after a SIGHUP? I cleaned up some code in that area, but I might have missed something. -- idk - 23-Mar-07 11:18 -- >From upgrading to rev. 2471 it didn't occurred. I restared by init script (service dbmail-imapd restart) many times (but this is not a SIGHUP, but stop/start, so killproc and new start). BTW often during restarting of a daemon occurrs this issue: Stopping say OK, but startning say already running with list of pids. After a while next restart: stopping say FAILED and starting say OK. No errors are logged. I have tried service dbmail-imapd reload (so SIGHUP, killproc $dbmail -HUP), process is ok and no error message was reported. -- idk - 23-Mar-07 11:24 -- After SIGHUP daemon stop to listen :( Telnet to lmtp connects to a port and say # telnet localhost lmtp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Connection closed by foreign host. A had to restart them (imapd too). -- aaron - 24-Mar-07 22:19 -- Oh crap, I've confirmed that I SIGHUP handling very badly. Probably will rearrange the code more significantly to make it very obvious what is happening. Too many functions have side-effects on the config struct. -- aaron - 24-Mar-07 23:32 -- Ok, I see what this bug might actually be about, and SIGHUP was me being stupid and has nothing to do with the issue here. In dbmail-imapsession.c, 'the_args' is an array of parsed out imap command arguments. It is static memory that is passed around a lot. Someplace this must not be going according to plan. Would it be possible to trace the imap commands leading up to this error? -- ljackson - 25-Mar-07 05:14 -- I belive I have found the cause of this issue, in the way ic_uid was doing pointer math on the args array. in the patch I have attached dbmail-svn-2.2.4-2480.bug546.imap_args.diff it moves the imap args to only the session and removes the global variable, it also moves all indexing of the imap args to a session variable as well. This allows ic_uid to increment the place in the args without killing the pointer. the new args array is allocated on session creation with g_new0 and g_free'ed at the end of a session it passes with all function from testimap.py and valgrind. But please test. -leif -- paul - 25-Mar-07 16:35 -- I've applied Leifs patch. (with some additional fixes cause the unit tests where broken :
Re: [Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
[EMAIL PROTECTED] wrote: -- aaron - 24-Mar-07 22:19 -- Oh crap, I've confirmed that I SIGHUP handling very badly. Probably will rearrange the code more significantly to make it very obvious what is happening. Too many functions have side-effects on the config struct. -- aaron - 24-Mar-07 23:32 -- Ok, I see what this bug might actually be about, and SIGHUP was me being stupid and has nothing to do with the issue here. In dbmail-imapsession.c, 'the_args' is an array of parsed out imap command arguments. It is static memory that is passed around a lot. Someplace this must not be going according to plan. Would it be possible to trace the imap commands leading up to this error? I was just looking at this. Since the_args is a global var, it doesn't make sence to return it does it? Maybe there is some namespace corruption... ? -leif ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev
Re: [Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
On Sat, 2007-03-24 at 20:25 -0500, Leif Jackson wrote: > [EMAIL PROTECTED] wrote: > > -- > > aaron - 24-Mar-07 23:32 > > -- > > Ok, I see what this bug might actually be about, and SIGHUP was me being > > stupid and has nothing to do with the issue here. > > > > In dbmail-imapsession.c, 'the_args' is an array of parsed out imap command > > arguments. It is static memory that is passed around a lot. Someplace this > > must not be going according to plan. > > > > Would it be possible to trace the imap commands leading up to this error? > > > > > > I was just looking at this. Since the_args is a global var, it doesn't > make sence to return it does it? Maybe there is some namespace > corruption... ? Yeah basically, that's what I'm thinking. This function also bottlenecks any ability to pipeline functions and to reenter the function from multiple threads. In the long term we need a rewrite. In the short term, I bet just some locking around the variable would do the trick to alert us to situations where we're parsing a new imap command before we're totally cleaned up from the previous command. Aaron ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev
Re: [Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
Yeah basically, that's what I'm thinking. This function also bottlenecks any ability to pipeline functions and to reenter the function from multiple threads. In the long term we need a rewrite. In the short term, I bet just some locking around the variable would do the trick to alert us to situations where we're parsing a new imap command before we're totally cleaned up from the previous command. Aaron humm the init_args variable is local, that means it doesn't do much? E.g. it means it will memset an active the_args global pointer ? and since that pointer is global it would step on things right? Why don't we just make it allocate the_args in that function and the free it later. any reason for the global? -leif -leif ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev
Re: [Dbmail-dev] [DBMail 0000546]: Memory corrupted in IMAP daemon
Aaron I have a patch that solves this I belive, however there is an issue I found with the args array with the UID command, I think this may be the root of the issue with bug 546, I have removed the "the_args" variable from the global scope and make it so it uses the imap session's args variable. The problem is that anything that calls UID e.g. _ic_uid does pointer math on the args array and would have been doing it on the global pointer thus causing an issue potentially with the global and now my g_new0 allocate array. any ideas on fixing the pointer math in _ic_uid? I am thinking about a shift function but that would cause to much memory shifting in the args array. I will write some code to add a current args index into the session and see how that works. Patch to follow shortly as soon as valgrind doesn't show massive errors. Thanks, Leif Leif Jackson wrote: Yeah basically, that's what I'm thinking. This function also bottlenecks any ability to pipeline functions and to reenter the function from multiple threads. In the long term we need a rewrite. In the short term, I bet just some locking around the variable would do the trick to alert us to situations where we're parsing a new imap command before we're totally cleaned up from the previous command. Aaron humm the init_args variable is local, that means it doesn't do much? E.g. it means it will memset an active the_args global pointer ? and since that pointer is global it would step on things right? Why don't we just make it allocate the_args in that function and the free it later. any reason for the global? -leif -leif ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev