Hi Timo, all of my tests fail with expire plugin, mail simply not get deleted i cant find any stuff in the logs why it does not or should not work. My guess that there is a problem with virtual plugin and/or shared namespace. It shouldnt be a problem with acl starting the script over cron as root am i right ? do you have any idea why it fails, is there a way to ignore all unneeded shared or virtual namespaces ? should there be a entry in the log when expire time is reached and deletion is unsuccessfull ? -- Best Regards MfG Robert Schetterer Germany/Munich/Bavaria
On Thu, 2009-07-23 at 23:42 +0200, Robert Schetterer wrote:> Hi Timo, > all of my tests fail > with expire plugin, mail simply not get deleted > i cant find any stuff in the logs why it does not or should not work.Try with 1.2.2 and check the mails' save dates now that you have the FETCH X-SAVEDATE command available. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 197 bytes Desc: This is a digitally signed message part URL: <http://dovecot.org/pipermail/dovecot/attachments/20090727/9485e2b2/attachment-0002.bin>
Timo Sirainen schrieb:> On Thu, 2009-07-23 at 23:42 +0200, Robert Schetterer wrote: >> Hi Timo, >> all of my tests fail >> with expire plugin, mail simply not get deleted >> i cant find any stuff in the logs why it does not or should not work. > > Try with 1.2.2 and check the mails' save dates now that you have the > FETCH X-SAVEDATE command available. >Hi Timo, upgraded last night and tested X-SAVEDATE is now available, before it was not so lets wait and see, if it now works, i will report -- Best Regards MfG Robert Schetterer Germany/Munich/Bavaria
Robert Schetterer schrieb:> Timo Sirainen schrieb: >> On Fri, 2009-07-31 at 17:21 +0200, Robert Schetterer wrote: >>> Hi Timo, >>> so now its clear, the mail >>> did not got deleted if i now do >>> >>> Info: robert at schetterer.com/Trash: no messages left >> So, it worked? "no messages left" means if you didn't give --test it >> would have deleted all messages from the mailbox. >> > Hi Timo, no it didnt work > i repeated the test since then twice > the mail was not deleted >Hi Timo, no it didnt work i repeated the test since then twice the mail was not deleted -- Best Regards MfG Robert Schetterer Germany/Munich/Bavaria
Timo Sirainen schrieb:> On Aug 3, 2009, at 3:26 AM, Robert Schetterer wrote: > >> Timo Sirainen schrieb: >>> On Fri, 2009-07-31 at 17:21 +0200, Robert Schetterer wrote: >>>> Hi Timo, >>>> so now its clear, the mail >>>> did not got deleted if i now do >>>> >>>> Info: robert at schetterer.com/Trash: no messages left >>> >>> So, it worked? "no messages left" means if you didn't give --test it >>> would have deleted all messages from the mailbox. >>> >> Hi Timo, no it didnt work >> i repeated the test since then twice >> the mail was not deleted > > Well, that message says that at the time there was no messages left in > the Trash. Do you mean that there were? Show me now what it says with: > > - expire-tool --test > - FETCH 1 X-SAVEDATE shows in a mailbox that should have expired messages > - SELECT * FROM .. showing the database row for the mailbox that should > have expired messages >Ok Timo, i start a new test to make sure mysql> select mailbox, from_unixtime(expire_stamp), username from expireplugin; +---------+-----------------------------+-----------------------+ | mailbox | from_unixtime(expire_stamp) | username | +---------+-----------------------------+-----------------------+ | Trash | 2009-08-04 09:40:21 | robert at schetterer.com | +---------+-----------------------------+-----------------------+ 1 row in set (0.00 sec) 1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH ACL RIGHTS=texk QUOTA] Logged in 2 select Trash * FLAGS (\Answered \Flagged \Deleted \Seen \Draft nonjunk Junk) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft nonjunk Junk \*)] Flags permitted. * 1 EXISTS * 0 RECENT * OK [UIDVALIDITY 1240758078] UIDs valid * OK [UIDNEXT 89] Predicted next UID * OK [HIGHESTMODSEQ 123] 2 OK [READ-WRITE] Select completed. 3 fetch 1:* (internaldate x-savedate) * 1 FETCH (INTERNALDATE "03-Aug-2009 09:40:16 +0200" X-SAVEDATE "03-Aug-2009 09:40:21 +0200") 3 OK Fetch completed. /usr/lib/dovecot/expire-tool.sh #!/bin/bash MAIL_PLUGINS=${MAIL_PLUGINS//imap_quota/} MAIL_PLUGINS=${MAIL_PLUGINS//mail_log/} MAIL_PLUGINS=${MAIL_PLUGINS//imap_acl/} exec ${0%.sh} "$@ /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf --exec-mail ext /usr/lib/dovecot/expire-tool.sh --test Info: Loading modules from directory: /usr/lib/dovecot/modules/imap Info: Module loaded: /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib10_quota_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_autocreate_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_expire_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_fts_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_virtual_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib21_fts_squat_plugin.so Info: Quota root: name= backend=dict args=:proxy::quotadict Info: Quota warning: bytes=0 (95%) messages=0 command=/usr/local/bin/quota-warning.sh 95 Info: Quota warning: bytes=0 (80%) messages=0 command=/usr/local/bin/quota-warning.sh 80 Info: expire: pattern=Trash type=expunge secs=86400 Info: robert at schetterer.com/Trash: stop, expire time in future: Tue Aug 4 09:40:21 2009 /etc/crontab 45 9 * * * root /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf --exec-mail ext /usr/lib/dovecot/expire-tool.sh so lets see what happens tommorow and repeat the --test as well as the mysql test and internal savedate test after deletion time -- Best Regards MfG Robert Schetterer Germany/Munich/Bavaria
On Aug 3, 2009, at 3:52 AM, Robert Schetterer wrote:> /etc/crontab > 45 9 * * * root /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf > --exec-mail ext /usr/lib/dovecot/expire-tool.shDisable this for now and tomorrow just run the --test first manually, save its output, then if it seemed ok run without --test.
Timo Sirainen schrieb:> On Aug 3, 2009, at 3:52 AM, Robert Schetterer wrote: > >> /etc/crontab >> 45 9 * * * root /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf >> --exec-mail ext /usr/lib/dovecot/expire-tool.sh > > Disable this for now and tomorrow just run the --test first manually, > save its output, then if it seemed ok run without --test. >ok i will do /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf --exec-mail ext /usr/lib/dovecot/expire-tool.sh --test tommorow and then /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf --exec-mail ext /usr/lib/dovecot/expire-tool.sh savin the outputs and additional looking in sql and imap savedate manually after deletetion time -- Best Regards MfG Robert Schetterer Germany/Munich/Bavaria
Robert Schetterer schrieb:> Timo Sirainen schrieb: >> On Aug 3, 2009, at 3:52 AM, Robert Schetterer wrote: >> >>> /etc/crontab >>> 45 9 * * * root /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf >>> --exec-mail ext /usr/lib/dovecot/expire-tool.sh >> Disable this for now and tomorrow just run the --test first manually, >> save its output, then if it seemed ok run without --test. >> > > ok i will do > /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf > --exec-mail ext /usr/lib/dovecot/expire-tool.sh --test tommorow > and then > /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf --exec-mail ext > /usr/lib/dovecot/expire-tool.sh > > savin the outputs > and additional looking in sql and imap savedate > > manually after deletetion time >Hi Timo, did that exactly in that row as you see the mail didnt get deleted ( stays in filesystem, and is shown to thunderbird ) but it expired in sql dict rightly but was not deleted /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf --exec-mail ext /usr/lib/dovecot/expire-tool.sh --test Info: Loading modules from directory: /usr/lib/dovecot/modules/imap Info: Module loaded: /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib10_quota_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_autocreate_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_expire_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_fts_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_virtual_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib21_fts_squat_plugin.so Info: Quota root: name= backend=dict args=:proxy::quotadict Info: Quota warning: bytes=0 (95%) messages=0 command=/usr/local/bin/quota-warning.sh 95 Info: Quota warning: bytes=0 (80%) messages=0 command=/usr/local/bin/quota-warning.sh 80 Info: expire: pattern=Trash type=expunge secs=86400 Info: auth input: home=/usr/local/virtual/schetterer.com/robert at schetterer.com/ Info: auth input: quota_rule=*:bytes=10240000 Info: auth input: quota_rule2=Trash:storage=50240 Info: auth input: quota_rule3=Sent:storage=50240 Info: auth input: quota_rule4=Drafts:storage=50240 Info: auth input: quota_rule5=Templates:storage=50240 Info: auth input: quota_rule6=Junk:storage=50240 Info: auth input: mail=maildir:/usr/local/virtual/schetterer.com/robert at schetterer.com/ Info: auth input: namespace_1_inbox=yes Info: auth input: uid=1001 Info: auth input: gid=1001 Info: dict quota: user=robert at schetterer.com, uri=proxy::quotadict, noenforcing=0 Info: Namespace: type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes Info: maildir: data=/usr/local/virtual//root/:CONTROL=/usr/local/virtual//root/:INDEX=/usr/local/virtual//root/:INBOX=/usr/local/virtual//root/ Info: maildir++: root=/usr/local/virtual//root, index=, control=, inbox=/usr/local/virtual//root Info: acl: initializing backend with data: vfile Info: acl: acl username = robert at schetterer.com Info: acl: owner = 1 Info: acl vfile: Global ACL directory: (null) Info: Namespace: type=private, prefix=virtual/, sep=/, inbox=no, hidden=yes, list=no, subscriptions=no Info: virtual: data=/etc/dovecot/virtual:LAYOUT=maildir++ Info: maildir++: root=/etc/dovecot/virtual, index=, control=, inboxInfo: acl: initializing backend with data: vfile Info: acl: acl username = robert at schetterer.com Info: acl: owner = 1 Info: acl vfile: Global ACL directory: (null) Info: Namespace: type=private, prefix=RealMails/, sep=/, inbox=no, hidden=yes, list=no, subscriptions=yes Info: maildir: data=/usr/local/virtual//root/:CONTROL=/usr/local/virtual//root/:INDEX=/usr/local/virtual//root/:INBOX=/usr/local/virtual//root/ Info: maildir++: root=/usr/local/virtual//root, index=, control=, inbox=/usr/local/virtual//root Info: acl: initializing backend with data: vfile Info: acl: acl username = robert at schetterer.com Info: acl: owner = 1 Info: acl vfile: Global ACL directory: (null) Info: Namespace: type=shared, prefix=shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=no Info: shared: root=, index=, control=, inboxInfo: Namespace : Using permissions from /usr/local/virtual//root: mode=0700 gid=-1 Info: acl vfile: file /usr/local/virtual//root/.Trash/dovecot-acl not found Info: robert at schetterer.com/Trash: no messages left select mailbox, from_unixtime(expire_stamp), username from expireplugin; +---------+-----------------------------+-----------------------+ | mailbox | from_unixtime(expire_stamp) | username | +---------+-----------------------------+-----------------------+ | Trash | 2009-08-04 09:40:21 | robert at schetterer.com | +---------+-----------------------------+-----------------------+ 1 row in set (0.00 sec) 3 select Trash * OK [CLOSED] * FLAGS (\Answered \Flagged \Deleted \Seen \Draft nonjunk Junk) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft nonjunk Junk \*)] Flags permitted. * 1 EXISTS * 0 RECENT * OK [UIDVALIDITY 1240758078] UIDs valid * OK [UIDNEXT 89] Predicted next UID * OK [HIGHESTMODSEQ 123] 3 OK [READ-WRITE] Select completed. 4 fetch 1:* (internaldate x-savedate) * 1 FETCH (INTERNALDATE "03-Aug-2009 09:40:16 +0200" X-SAVEDATE "03-Aug-2009 09:40:21 +0200") 4 OK Fetch completed. /usr/local/virtual/schetterer.com/robert at schetterer.com/.Trash/cur# ls -la total 12 drwx------ 2 vmail vmail 4096 2009-08-03 09:40 . drwx------ 5 vmail vmail 4096 2009-08-04 10:10 .. -rw------- 2 vmail vmail 832 2009-08-03 09:40 1249285221.M317685P16433.master,W=853,S=832:2,S /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf --exec-mail ext /usr/lib/dovecot/expire-tool.sh Info: Loading modules from directory: /usr/lib/dovecot/modules/imap Info: Module loaded: /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib10_quota_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_autocreate_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_expire_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_fts_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib20_virtual_plugin.so Info: Module loaded: /usr/lib/dovecot/modules/imap/lib21_fts_squat_plugin.so Info: Quota root: name= backend=dict args=:proxy::quotadict Info: Quota warning: bytes=0 (95%) messages=0 command=/usr/local/bin/quota-warning.sh 95 Info: Quota warning: bytes=0 (80%) messages=0 command=/usr/local/bin/quota-warning.sh 80 Info: expire: pattern=Trash type=expunge secs=86400 Info: auth input: home=/usr/local/virtual/schetterer.com/robert at schetterer.com/ Info: auth input: quota_rule=*:bytes=10240000 Info: auth input: quota_rule2=Trash:storage=50240 Info: auth input: quota_rule3=Sent:storage=50240 Info: auth input: quota_rule4=Drafts:storage=50240 Info: auth input: quota_rule5=Templates:storage=50240 Info: auth input: quota_rule6=Junk:storage=50240 Info: auth input: mail=maildir:/usr/local/virtual/schetterer.com/robert at schetterer.com/ Info: auth input: namespace_1_inbox=yes Info: auth input: uid=1001 Info: auth input: gid=1001 Info: dict quota: user=robert at schetterer.com, uri=proxy::quotadict, noenforcing=0 Info: Namespace: type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes Info: maildir: data=/usr/local/virtual//root/:CONTROL=/usr/local/virtual//root/:INDEX=/usr/local/virtual//root/:INBOX=/usr/local/virtual//root/ Info: maildir++: root=/usr/local/virtual//root, index=, control=, inbox=/usr/local/virtual//root Info: acl: initializing backend with data: vfile Info: acl: acl username = robert at schetterer.com Info: acl: owner = 1 Info: acl vfile: Global ACL directory: (null) Info: Namespace: type=private, prefix=virtual/, sep=/, inbox=no, hidden=yes, list=no, subscriptions=no Info: virtual: data=/etc/dovecot/virtual:LAYOUT=maildir++ Info: maildir++: root=/etc/dovecot/virtual, index=, control=, inboxInfo: acl: initializing backend with data: vfile Info: acl: acl username = robert at schetterer.com Info: acl: owner = 1 Info: acl vfile: Global ACL directory: (null) Info: Namespace: type=private, prefix=RealMails/, sep=/, inbox=no, hidden=yes, list=no, subscriptions=yes Info: maildir: data=/usr/local/virtual//root/:CONTROL=/usr/local/virtual//root/:INDEX=/usr/local/virtual//root/:INBOX=/usr/local/virtual//root/ Info: maildir++: root=/usr/local/virtual//root, index=, control=, inbox=/usr/local/virtual//root Info: acl: initializing backend with data: vfile Info: acl: acl username = robert at schetterer.com Info: acl: owner = 1 Info: acl vfile: Global ACL directory: (null) Info: Namespace: type=shared, prefix=shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=no Info: shared: root=, index=, control=, inboxInfo: Namespace : Using permissions from /usr/local/virtual//root: mode=0700 gid=-1 Info: acl vfile: file /usr/local/virtual//root/.Trash/dovecot-acl not found ls -la total 12 drwx------ 2 vmail vmail 4096 2009-08-03 09:40 . drwx------ 5 vmail vmail 4096 2009-08-04 10:10 .. -rw------- 2 vmail vmail 832 2009-08-03 09:40 1249285221.M317685P16433.master,W=853,S=832:2,S root at master:/usr/local/virtual/schetterer.com/robert at schetterer.com/.Trash/cur# select Trash * FLAGS (\Answered \Flagged \Deleted \Seen \Draft nonjunk Junk) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft nonjunk Junk \*)] Flags permitted. * 1 EXISTS * 0 RECENT * OK [UIDVALIDITY 1240758078] UIDs valid * OK [UIDNEXT 89] Predicted next UID * OK [HIGHESTMODSEQ 123] 2 OK [READ-WRITE] Select completed. 3 fetch 1:* (internaldate x-savedate) * 1 FETCH (INTERNALDATE "03-Aug-2009 09:40:16 +0200" X-SAVEDATE "03-Aug-2009 09:40:21 +0200") 3 OK Fetch completed. mysql> select mailbox, from_unixtime(expire_stamp), username from expireplugin; Empty set (0.01 sec) -- Best Regards MfG Robert Schetterer Germany/Munich/Bavaria
Robert Schetterer
2009-Aug-10 17:49 UTC
[Dovecot] expire plugin no delete 1.2.1 / 1.2.2 / 1.2.3
Timo Sirainen schrieb:> On Aug 10, 2009, at 11:17 AM, Robert Schetterer wrote: > >>>>> Info: maildir: >>>>> data=/usr/local/virtual//root/:CONTROL=/usr/local/virtual//root/:INDEX=/usr/local/virtual//root/:INBOX=/usr/local/virtual//root/ >>>>> > .. >> setting >> mail_location = maildir:~/ >> does not change anything >> mail is still not deleted, latest test were with 1.2.3 > > What does it log now? >does not look very different then before i will send exact log tommorow -- Best Regards MfG Robert Schetterer Germany/Munich/Bavaria