[Dbmail-dev] TimsieveD stack trace
Hi Paul, I've created a bug report with the stack trace for timsieved that gets zombie every 2/3 days with too much open files issue, in: http://dbmail.org/mantis/view.php?id=1062 Other question is, now when a new bug report is created or updated, the -dev list is not receiving it, just to let you know in case not aware of it yet. ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev
[Dbmail-dev] TimsieveD
Paul, You asked me to check my kernel, and now I just compiled it without the security options. Still nor working, Well, I have no ideia on what it can be. In library's, what matters to timsieved, libevent and what else? ___ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev
[Dbmail-dev] timsieved
Hello I try to manage sieve scripts from kmail. kmail get names of scripts, but can't change them ;( I think this is kmail's problem, because smartsieve (php web utility) can do But there is error: dbmysql.c,db_query: res was not freed after the previous query! If script has error, temporarily record don't deleted from table dbmail_sievescripts Log: pool.c,child_reg_connected: [27272] serverchild.c,PerformChildTask: incoming connection from [127.0.0.1] serverchild.c,PerformChildTask: client info init complete, calling client handler tims(): incoming buffer: [AUTHENTICATE PLAIN {16+}] tims(): command issued: cmd [AUTHENTICATE], val [PLAIN {16+}] tims(): command looked up as commandtype 4 misc.c, find_bounded: Found nothing between '' and '' misc.c, find_bounded: Found [16] of length [2] between '{' and '+' so next skip [4] db.c,db_usermap_resolve: checking userid 'loe' in usermap db.c,db_usermap_resolve: client on inet socket [inet:127.0.0.1:2] dbmysql.c,db_query: executing query [SELECT login, sock_allow, sock_deny, userid FROM dbmail_usermap WHERE login in ('loe','ANY') ORDER BY sock_allow, sock_deny] db.c,db_usermap_resolve: login 'loe' not found in usermap dbmysql.c,db_query: executing query [SELECT user_idnr FROM dbmail_users WHERE lower(userid) = lower('loe')] dbmysql.c,db_query: executing query [SELECT user_idnr, passwd, encryption_type FROM dbmail_users WHERE user_idnr = '2'] authsql.c,auth_validate: validating using plaintext passwords dbmysql.c,db_query: executing query [UPDATE dbmail_users SET last_login = '2006-02-21 09:35:58' WHERE user_idnr = '2'] dbmysql.c,db_query: res was not freed after the previous query! tims(): incoming buffer: [LOGOUT] tims(): command looked up as commandtype 0 serverchild.c,PerformChildTask: client handling complete, closing streams serverchild.c,client_close: closing write stream serverchild.c,client_close: closing read stream serverchild.c,PerformChildTask: connection closed serverchild.c,PerformChildTask: waiting for connection pool.c,child_reg_disconnected: [27272] pool.c,child_reg_connected: [27270] serverchild.c,PerformChildTask: incoming connection from [127.0.0.1] serverchild.c,PerformChildTask: client info init complete, calling client handler tims(): incoming buffer: [AUTHENTICATE PLAIN {16+}] tims(): command issued: cmd [AUTHENTICATE], val [PLAIN {16+}] tims(): command looked up as commandtype 4 misc.c, find_bounded: Found nothing between '' and '' misc.c, find_bounded: Found [16] of length [2] between '{' and '+' so next skip [4] db.c,db_usermap_resolve: checking userid 'loe' in usermap db.c,db_usermap_resolve: client on inet socket [inet:127.0.0.1:2] dbmysql.c,db_query: executing query [SELECT login, sock_allow, sock_deny, userid FROM dbmail_usermap WHERE login in ('loe','ANY') ORDER BY sock_allow, sock_deny] db.c,db_usermap_resolve: login 'loe' not found in usermap dbmysql.c,db_query: executing query [SELECT user_idnr FROM dbmail_users WHERE lower(userid) = lower('loe')] dbmysql.c,db_query: executing query [SELECT user_idnr, passwd, encryption_type FROM dbmail_users WHERE user_idnr = '2'] authsql.c,auth_validate: validating using plaintext passwords dbmysql.c,db_query: executing query [UPDATE dbmail_users SET last_login = '2006-02-21 09:35:58' WHERE user_idnr = '2'] dbmysql.c,db_query: res was not freed after the previous query! tims(): incoming buffer: [LISTSCRIPTS] tims(): command looked up as commandtype 3 dbmysql.c,db_query: executing query [SELECT name,active from dbmail_sievescripts where owner_idnr = 2] tims(): incoming buffer: [GETSCRIPT spam] tims(): command issued: cmd [GETSCRIPT], val [spam] tims(): command looked up as commandtype 6 misc.c, find_bounded: Found [spam] of length [4] between '' and '' so next skip [5] dbmysql.c,db_query: executing query [SELECT script from dbmail_sievescripts where owner_idnr = '2' and name = 'spam'] tims(): incoming buffer: [PUTSCRIPT spam {305+}] tims(): command issued: cmd [PUTSCRIPT], val [spam {305+}] tims(): command looked up as commandtype 9 misc.c, find_bounded: Found [spam] of length [4] between '' and '' so next skip [5] misc.c, find_bounded: Found [305] of length [3] between '{' and '+' so next skip [6] timsieve.c, tims: Client sending script of length [305] db.c,db_check_sievescript_quota: updating 2 sievescript quota with 305 dbmysql.c,db_query: executing query [BEGIN] dbmysql.c,db_query: executing query [SELECT COUNT(*) FROM dbmail_sievescripts WHERE owner_idnr = 2 AND name = '@!temp-script!@'] dbmysql.c,db_query: executing query [DELETE FROM dbmail_sievescripts WHERE owner_idnr = 2 AND name = '@!temp-script!@'] dbmysql.c,db_query: res was not freed after the previous query! dbmysql.c,db_query: executing query [INSERT into dbmail_sievescripts (owner_idnr, name, script, active) values (2, '@!temp-script!@', '#Mail filter rules for loe\n#Generated by loe using SmartSieve 0.5.2 2006/02/21 09:35:58\n{297+}\r\nrequire \fileinto\;\r\n\r\nif header :is
Re: [Dbmail-dev] timsieved
On Tue, February 21, 2006 1:42 am, Oleg Lapshin wrote: But there is error: dbmysql.c,db_query: res was not freed after the previous query! This isn't really an error just a warning message to developers about the fact that on the previous call to db_query they didn't free the result before calling db_query again. Aaron added my patch for memory leaks and in it was this sort of catch all check as I was seeing a lot of query's that wern't being freeded as the default db_query stores all result's even if it isn't really needed..etc. I will let Aaron comment on the sieve stuff. -leif If script has error, temporarily record don't deleted from table dbmail_sievescripts Log: pool.c,child_reg_connected: [27272] serverchild.c,PerformChildTask: incoming connection from [127.0.0.1] serverchild.c,PerformChildTask: client info init complete, calling client handler tims(): incoming buffer: [AUTHENTICATE PLAIN {16+}] tims(): command issued: cmd [AUTHENTICATE], val [PLAIN {16+}] tims(): command looked up as commandtype 4 misc.c, find_bounded: Found nothing between '' and '' misc.c, find_bounded: Found [16] of length [2] between '{' and '+' so next skip [4] db.c,db_usermap_resolve: checking userid 'loe' in usermap db.c,db_usermap_resolve: client on inet socket [inet:127.0.0.1:2] dbmysql.c,db_query: executing query [SELECT login, sock_allow, sock_deny, userid FROM dbmail_usermap WHERE login in ('loe','ANY') ORDER BY sock_allow, sock_deny] db.c,db_usermap_resolve: login 'loe' not found in usermap dbmysql.c,db_query: executing query [SELECT user_idnr FROM dbmail_users WHERE lower(userid) = lower('loe')] dbmysql.c,db_query: executing query [SELECT user_idnr, passwd, encryption_type FROM dbmail_users WHERE user_idnr = '2'] authsql.c,auth_validate: validating using plaintext passwords dbmysql.c,db_query: executing query [UPDATE dbmail_users SET last_login = '2006-02-21 09:35:58' WHERE user_idnr = '2'] dbmysql.c,db_query: res was not freed after the previous query! tims(): incoming buffer: [LOGOUT] tims(): command looked up as commandtype 0 serverchild.c,PerformChildTask: client handling complete, closing streams serverchild.c,client_close: closing write stream serverchild.c,client_close: closing read stream serverchild.c,PerformChildTask: connection closed serverchild.c,PerformChildTask: waiting for connection pool.c,child_reg_disconnected: [27272] pool.c,child_reg_connected: [27270] serverchild.c,PerformChildTask: incoming connection from [127.0.0.1] serverchild.c,PerformChildTask: client info init complete, calling client handler tims(): incoming buffer: [AUTHENTICATE PLAIN {16+}] tims(): command issued: cmd [AUTHENTICATE], val [PLAIN {16+}] tims(): command looked up as commandtype 4 misc.c, find_bounded: Found nothing between '' and '' misc.c, find_bounded: Found [16] of length [2] between '{' and '+' so next skip [4] db.c,db_usermap_resolve: checking userid 'loe' in usermap db.c,db_usermap_resolve: client on inet socket [inet:127.0.0.1:2] dbmysql.c,db_query: executing query [SELECT login, sock_allow, sock_deny, userid FROM dbmail_usermap WHERE login in ('loe','ANY') ORDER BY sock_allow, sock_deny] db.c,db_usermap_resolve: login 'loe' not found in usermap dbmysql.c,db_query: executing query [SELECT user_idnr FROM dbmail_users WHERE lower(userid) = lower('loe')] dbmysql.c,db_query: executing query [SELECT user_idnr, passwd, encryption_type FROM dbmail_users WHERE user_idnr = '2'] authsql.c,auth_validate: validating using plaintext passwords dbmysql.c,db_query: executing query [UPDATE dbmail_users SET last_login = '2006-02-21 09:35:58' WHERE user_idnr = '2'] dbmysql.c,db_query: res was not freed after the previous query! tims(): incoming buffer: [LISTSCRIPTS] tims(): command looked up as commandtype 3 dbmysql.c,db_query: executing query [SELECT name,active from dbmail_sievescripts where owner_idnr = 2] tims(): incoming buffer: [GETSCRIPT spam] tims(): command issued: cmd [GETSCRIPT], val [spam] tims(): command looked up as commandtype 6 misc.c, find_bounded: Found [spam] of length [4] between '' and '' so next skip [5] dbmysql.c,db_query: executing query [SELECT script from dbmail_sievescripts where owner_idnr = '2' and name = 'spam'] tims(): incoming buffer: [PUTSCRIPT spam {305+}] tims(): command issued: cmd [PUTSCRIPT], val [spam {305+}] tims(): command looked up as commandtype 9 misc.c, find_bounded: Found [spam] of length [4] between '' and '' so next skip [5] misc.c, find_bounded: Found [305] of length [3] between '{' and '+' so next skip [6] timsieve.c, tims: Client sending script of length [305] db.c,db_check_sievescript_quota: updating 2 sievescript quota with 305 dbmysql.c,db_query: executing query [BEGIN] dbmysql.c,db_query: executing query [SELECT COUNT(*) FROM dbmail_sievescripts WHERE owner_idnr = 2 AND name = '@!temp-script!@'] dbmysql.c,db_query: executing query [DELETE FROM dbmail_sievescripts WHERE owner_idnr = 2
Re: [Dbmail-dev] timsieved
I just committed a major round of updates. All Sieve actions should be working now, including subaddress testing and vacation responses :-) On Tue, 2006-02-21 at 09:42 +0300, Oleg Lapshin wrote: Hello I try to manage sieve scripts from kmail. kmail get names of scripts, but can't change them ;( I think this is kmail's problem, because smartsieve (php web utility) can do Weird, ok. Maybe it's a known bug in KMail? But there is error: dbmysql.c,db_query: res was not freed after the previous query! Fixed. If script has error, temporarily record don't deleted from table dbmail_sievescripts Fixed. Aaron
[Dbmail-dev] timsieved
This isn't really an error just a warning message to developers about the fact that on the previous call to db_query they didn't free the result before calling db_query again. Aaron added my patch for memory leaks and in it was this sort of catch all check as I was seeing a lot of query's that wern't being freeded as the default db_query stores all result's even if it isn't really needed..etc. I will let Aaron comment on the sieve stuff. -leif OK, but after nearly 10-15 operations from smartsieve web interface I get: $ top -b -n 1 | grep timsieve PID USER PR NI VIRT RES SHR S %CPU %MEMTIME+ COMMAND 28847 nobody25 0 5164 1388 932 R 72.4 0.2 1:44.10 dbmail-timsieve 28842 root 16 0 4852 1108 800 S 0.0 0.1 0:00.00 dbmail-timsieve 28843 nobody16 0 5076 1476 1052 S 0.0 0.2 0:00.02 dbmail-timsieve 28845 nobody15 0 5076 1252 824 S 0.0 0.2 0:00.08 dbmail-timsieve and up to 95% of cpu And then: $ kill 28842 MainSigHandler(): got signal [15] pool.c,manage_stop_children: General stop requested. Killing children.. serverchild.c,active_child_sig_handler: got signal [Terminated] serverchild.c,active_child_sig_handler: setting stop request serverchild.c,PerformChildTask: accept failed serverchild.c,PerformChildTask: stop requested pool.c,child_reg_disconnected: [28845] serverchild.c,disconnect_all: database connection still open, closing pool.c,child_unregister: child [28845] unregistered serverchild.c,active_child_sig_handler: got signal [Terminated] serverchild.c,active_child_sig_handler: setting stop request pool.c,manage_stop_children: not all children terminated at SIGTERM, killing hard now main(): server done, exit. main(): server has exited, exit status [0] main(): exit What happens with dbmail-timsieved ? -- Oleg Lapshin
Re: [Dbmail-dev] timsieved
On Tue, 2006-02-21 at 10:29 +0300, Oleg Lapshin wrote: This isn't really an error just a warning message to developers about the fact that on the previous call to db_query they didn't free the result before calling db_query again. Aaron added my patch for memory leaks and in it was this sort of catch all check as I was seeing a lot of query's that wern't being freeded as the default db_query stores all result's even if it isn't really needed..etc. I will let Aaron comment on the sieve stuff. -leif OK, but after nearly 10-15 operations from smartsieve web interface I get: $ top -b -n 1 | grep timsieve PID USER PR NI VIRT RES SHR S %CPU %MEMTIME+ COMMAND 28847 nobody25 0 5164 1388 932 R 72.4 0.2 1:44.10 dbmail-timsieve 28842 root 16 0 4852 1108 800 S 0.0 0.1 0:00.00 dbmail-timsieve 28843 nobody16 0 5076 1476 1052 S 0.0 0.2 0:00.02 dbmail-timsieve 28845 nobody15 0 5076 1252 824 S 0.0 0.2 0:00.08 dbmail-timsieve and up to 95% of cpu And then: $ kill 28842 MainSigHandler(): got signal [15] pool.c,manage_stop_children: General stop requested. Killing children.. serverchild.c,active_child_sig_handler: got signal [Terminated] serverchild.c,active_child_sig_handler: setting stop request serverchild.c,PerformChildTask: accept failed serverchild.c,PerformChildTask: stop requested pool.c,child_reg_disconnected: [28845] serverchild.c,disconnect_all: database connection still open, closing pool.c,child_unregister: child [28845] unregistered serverchild.c,active_child_sig_handler: got signal [Terminated] serverchild.c,active_child_sig_handler: setting stop request pool.c,manage_stop_children: not all children terminated at SIGTERM, killing hard now main(): server done, exit. main(): server has exited, exit status [0] main(): exit What happens with dbmail-timsieved ? Good question! Unfortunately I won't have much time to dig into it during the rest of the week :-\ A good valgrind session will probably turn up the culprit. Aaron
[Dbmail-dev] timsieved
What happens with dbmail-timsieved ? Good question! Unfortunately I won't have much time to dig into it during the rest of the week :-\ A good valgrind session will probably turn up the culprit. Aaron :) I shall try to debug this -- Oleg Lapshin
[Dbmail-dev] timsieved
I try to update sieve script. a) new script inserted with magic name b) old script don't deleted (!) c) new script renamed and I get 2 scripts with the same name (old - active, new - not) pool.c,child_reg_connected: [13036] serverchild.c,PerformChildTask: incoming connection from [62.89.253.152] serverchild.c,PerformChildTask: client info init complete, calling client handler tims(): incoming buffer: [AUTHENTICATE PLAIN {16+}] tims(): command issued: cmd [AUTHENTICATE], val [PLAIN {16+}] tims(): command looked up as commandtype 4 misc.c, find_bounded: Found nothing between '' and '' misc.c, find_bounded: Found [16] of length [2] between '{' and '+' so next skip [4] db.c,db_usermap_resolve: checking userid 'loe' in usermap db.c,db_usermap_resolve: client on inet socket [inet:62.89.253.152:2] dbmysql.c,db_query: executing query [SELECT login, sock_allow, sock_deny, userid FROM dbmail_usermap WHERE login in ('loe','ANY') ORDER BY sock_allow, sock_deny] db.c,db_usermap_resolve: login 'loe' not found in usermap dbmysql.c,db_query: executing query [SELECT user_idnr FROM dbmail_users WHERE lower(userid) = lower('loe')] dbmysql.c,db_query: executing query [SELECT user_idnr, passwd, encryption_type FROM dbmail_users WHERE user_idnr = '2'] authsql.c,auth_validate: validating using plaintext passwords dbmysql.c,db_query: executing query [UPDATE dbmail_users SET last_login = '2006-02-21 11:16:47' WHERE user_idnr = '2'] dbmysql.c,db_query: res was not freed after the previous query! tims(): incoming buffer: [LOGOUT] tims(): command looked up as commandtype 0 serverchild.c,PerformChildTask: client handling complete, closing streams serverchild.c,client_close: closing write stream serverchild.c,client_close: closing read stream serverchild.c,PerformChildTask: connection closed pool.c,child_reg_connected: [13034] serverchild.c,PerformChildTask: incoming connection from [62.89.253.152] serverchild.c,PerformChildTask: client info init complete, calling client handler serverchild.c,PerformChildTask: waiting for connection pool.c,child_reg_disconnected: [13036] tims(): incoming buffer: [AUTHENTICATE PLAIN {16+}] tims(): command issued: cmd [AUTHENTICATE], val [PLAIN {16+}] tims(): command looked up as commandtype 4 misc.c, find_bounded: Found nothing between '' and '' misc.c, find_bounded: Found [16] of length [2] between '{' and '+' so next skip [4] db.c,db_usermap_resolve: checking userid 'loe' in usermap db.c,db_usermap_resolve: client on inet socket [inet:62.89.253.152:2] dbmysql.c,db_query: executing query [SELECT login, sock_allow, sock_deny, userid FROM dbmail_usermap WHERE login in ('loe','ANY') ORDER BY sock_allow, sock_deny] db.c,db_usermap_resolve: login 'loe' not found in usermap dbmysql.c,db_query: executing query [SELECT user_idnr FROM dbmail_users WHERE lower(userid) = lower('loe')] dbmysql.c,db_query: executing query [SELECT user_idnr, passwd, encryption_type FROM dbmail_users WHERE user_idnr = '2'] authsql.c,auth_validate: validating using plaintext passwords dbmysql.c,db_query: executing query [UPDATE dbmail_users SET last_login = '2006-02-21 11:16:47' WHERE user_idnr = '2'] dbmysql.c,db_query: res was not freed after the previous query! tims(): incoming buffer: [LISTSCRIPTS] tims(): command looked up as commandtype 3 dbmysql.c,db_query: executing query [SELECT name,active from dbmail_sievescripts where owner_idnr = 2] tims(): incoming buffer: [GETSCRIPT main] tims(): command issued: cmd [GETSCRIPT], val [main] tims(): command looked up as commandtype 6 misc.c, find_bounded: Found [main] of length [4] between '' and '' so next skip [5] dbmysql.c,db_query: executing query [SELECT script from dbmail_sievescripts where owner_idnr = '2' and name = 'main'] tims(): incoming buffer: [PUTSCRIPT main {460+}] tims(): command issued: cmd [PUTSCRIPT], val [main {460+}] tims(): command looked up as commandtype 9 misc.c, find_bounded: Found [main] of length [4] between '' and '' so next skip [5] misc.c, find_bounded: Found [460] of length [3] between '{' and '+' so next skip [6] timsieve.c, tims: Client sending script of length [460] db.c,db_check_sievescript_quota: updating 2 sievescript quota with 460 dbmysql.c,db_query: executing query [BEGIN] dbmysql.c,db_query: executing query [SELECT COUNT(*) FROM dbmail_sievescripts WHERE owner_idnr = 2 AND name = '@!temp-script!@'] dbmysql.c,db_get_result: result set is null dbmysql.c,db_query: executing query [INSERT into dbmail_sievescripts (owner_idnr, name, script, active) values (2, '@!temp-script!@', '#Mail filter rules for loe\n#Generated by loe using SmartSieve 0.5.2 2006/02/21 11:16:47\nrequire \fileinto\;\r\nrequire \subaddress\;\r\n\r\nif envelope :detail \to\ \spam\ {\r\nfileinto \SPAM\;}\r\nelsif header :is \X-Spam-Flag\ \YES\ { \r\nfileinto \SPAM\;} \r\n\r\n else {\r\nfileinto \INBOX\;}\n\n\n##PSEUDO script start\n#modeadvanced\n', 0)] dbmysql.c,db_query: executing query [COMMIT] sortsieve.c, sort_getscript: Getting default