[Dovecot] Expire plugin isn't working
Hello all,
I followed the wiki to configured the expire plugin on dovecot-1.1rc4 and it isn't working. No error messages on logs or on the execution of "dovecot --exec-mail ext /usr/libexec/dovecot/expire-tool".
mailserver02:~ # dovecot -n # 1.1.rc4: /etc/dovecot//dovecot.conf syslog_facility: local1 protocols: imap pop3 ssl_disable: yes disable_plaintext_auth: no shutdown_clients: no login_dir: /usr//var/run/dovecot/login login_executable(default): /usr//libexec/dovecot/imap-login login_executable(imap): /usr//libexec/dovecot/imap-login login_executable(pop3): /usr//libexec/dovecot/pop3-login login_process_per_connection: no login_greeting_capability(default): yes login_greeting_capability(imap): yes login_greeting_capability(pop3): no login_process_size: 128 login_processes_count: 30 login_max_processes_count: 1024 login_max_connections: 512 max_mail_processes: 10240 mail_max_userip_connections(default): 20 mail_max_userip_connections(imap): 20 mail_max_userip_connections(pop3): 10 mail_uid: 1033 mail_gid: 1033 mail_location: maildir:%h/Maildir mail_executable(default): /usr//libexec/dovecot/imap mail_executable(imap): /usr//libexec/dovecot/imap mail_executable(pop3): /usr//libexec/dovecot/pop3 mail_plugins(default): expire quota imap_quota autocreate mail_plugins(imap): expire quota imap_quota autocreate mail_plugins(pop3): quota mail_plugin_dir(default): /usr//lib/dovecot/imap mail_plugin_dir(imap): /usr//lib/dovecot/imap mail_plugin_dir(pop3): /usr//lib/dovecot/pop3 pop3_no_flag_updates(default): no pop3_no_flag_updates(imap): no pop3_no_flag_updates(pop3): yes pop3_uidl_format(default): %08Xu%08Xv pop3_uidl_format(imap): %08Xu%08Xv pop3_uidl_format(pop3): %f pop3_client_workarounds(default): pop3_client_workarounds(imap): pop3_client_workarounds(pop3): outlook-no-nuls namespace: type: private prefix: INBOX. inbox: yes list: yes subscriptions: yes auth default: mechanisms: plain login cache_size: 20480 cache_ttl: 300 cache_negative_ttl: 0 passdb: driver: ldap args: /etc/dovecot/dovecot-ldap.conf userdb: driver: prefetch userdb: driver: ldap args: /etc/dovecot/dovecot-ldap.conf socket: type: listen master: path: /var/run/dovecot/auth-master mode: 438 plugin: quota: maildir quota_rule: *:bytes=10240 quota_rule2: *:messages=30000 autocreate: SPAM.E Spam autocreate2: SPAM.Marcar Spam autocreate3: SPAM autocreate4: SPAM.Desmarcar Spam expire: Trash 1 SPAM 10 SPAM/* 10 Sent 30 expire_dict: proxy::expire auth_socket_path: /var/run/dovecot/auth-master dict: expire: db:/usr/lib/dovecot/expidb/expire.db
Raphael Bittencourt S. Costa wrote:
I followed the wiki to configured the expire plugin on dovecot-1.1rc4 and it isn't working. No error messages on logs or on the execution of "dovecot --exec-mail ext /usr/libexec/dovecot/expire-tool".
I also have trouble getting it to do much. It may be broken; I found some old mails where Timo says that it has not been tested in recent times.
Anders.
Raphael Bittencourt S. Costa wrote:
I followed the wiki to configured the expire plugin on dovecot-1.1rc4 and it isn't working. No error messages on logs or on the execution of "dovecot --exec-mail ext /usr/libexec/dovecot/expire-tool".
Same problem for me. The expire plugin is in fact active, as I get an error when intentionally malforming the expire= configuration line.
After observing my install for a bit, though, I have come to the understanding that the expire plugin never really does anything. The proxy db is only created when the expire-tool is run at night, and never touched during the day.
I wonder what can be done to debug this? Using the find -delete way of removing old mail seems a bit crude, especially with regards to the index.
Regards, Anders.
On Wed, 2008-04-16 at 10:49 +0200, Anders wrote:
Raphael Bittencourt S. Costa wrote:
I followed the wiki to configured the expire plugin on dovecot-1.1rc4 and it isn't working. No error messages on logs or on the execution of "dovecot --exec-mail ext /usr/libexec/dovecot/expire-tool".
Same problem for me. The expire plugin is in fact active, as I get an error when intentionally malforming the expire= configuration line.
After observing my install for a bit, though, I have come to the understanding that the expire plugin never really does anything. The proxy db is only created when the expire-tool is run at night, and never touched during the day.
This should fix it: http://hg.dovecot.org/dovecot-1.1/rev/e1fe3d080314
Timo,
It's still not working. The dict is called only by expire-tool.
On Fri, 2008-04-25 at 00:53 +0300, Timo Sirainen wrote:
On Wed, 2008-04-16 at 10:49 +0200, Anders wrote:
Raphael Bittencourt S. Costa wrote:
I followed the wiki to configured the expire plugin on dovecot-1.1rc4 and it isn't working. No error messages on logs or on the execution of "dovecot --exec-mail ext /usr/libexec/dovecot/expire-tool".
Same problem for me. The expire plugin is in fact active, as I get an error when intentionally malforming the expire= configuration line.
After observing my install for a bit, though, I have come to the understanding that the expire plugin never really does anything. The proxy db is only created when the expire-tool is run at night, and never touched during the day.
This should fix it: http://hg.dovecot.org/dovecot-1.1/rev/e1fe3d080314
[]s,
Raphael Costa
You mean the dict db isn't even created by expire plugin? It was created in my tests (and expire_altmove also worked in my previous tests). What configuration are you using?
On Thu, 2008-04-24 at 20:52 -0300, Raphael Bittencourt S. Costa wrote:
Timo,
It's still not working. The dict is called only by expire-tool.
On Fri, 2008-04-25 at 00:53 +0300, Timo Sirainen wrote:
On Wed, 2008-04-16 at 10:49 +0200, Anders wrote:
Raphael Bittencourt S. Costa wrote:
I followed the wiki to configured the expire plugin on dovecot-1.1rc4 and it isn't working. No error messages on logs or on the execution of "dovecot --exec-mail ext /usr/libexec/dovecot/expire-tool".
Same problem for me. The expire plugin is in fact active, as I get an error when intentionally malforming the expire= configuration line.
After observing my install for a bit, though, I have come to the understanding that the expire plugin never really does anything. The proxy db is only created when the expire-tool is run at night, and never touched during the day.
This should fix it: http://hg.dovecot.org/dovecot-1.1/rev/e1fe3d080314
[]s,
Raphael Costa
On Fri, 2008-04-25 at 02:57 +0300, Timo Sirainen wrote:
You mean the dict db isn't even created by expire plugin?
Yes.
It was created in my tests (and expire_altmove also worked in my previous tests). What configuration are you using?
dovecot -n # 1.1.rc4: /etc/dovecot//dovecot.conf syslog_facility: local1 protocols: imap pop3 ssl_disable: yes disable_plaintext_auth: no shutdown_clients: no login_dir: /usr//var/run/dovecot/login login_executable(default): /usr//libexec/dovecot/imap-login login_executable(imap): /usr//libexec/dovecot/imap-login login_executable(pop3): /usr//libexec/dovecot/pop3-login login_process_per_connection: no login_greeting_capability(default): yes login_greeting_capability(imap): yes login_greeting_capability(pop3): no login_process_size: 128 login_processes_count: 30 login_max_processes_count: 1024 login_max_connections: 512 max_mail_processes: 10240 mail_max_userip_connections(default): 20 mail_max_userip_connections(imap): 20 mail_max_userip_connections(pop3): 10 mail_uid: 1033 mail_gid: 1033 mail_location: maildir:%h/Maildir mail_executable(default): /usr//libexec/dovecot/imap mail_executable(imap): /usr//libexec/dovecot/imap mail_executable(pop3): /usr//libexec/dovecot/pop3 mail_plugins(default): quota imap_quota autocreate expire mail_plugins(imap): quota imap_quota autocreate expire mail_plugins(pop3): quota mail_plugin_dir(default): /usr//lib/dovecot/imap mail_plugin_dir(imap): /usr//lib/dovecot/imap mail_plugin_dir(pop3): /usr//lib/dovecot/pop3 pop3_no_flag_updates(default): no pop3_no_flag_updates(imap): no pop3_no_flag_updates(pop3): yes pop3_uidl_format(default): %08Xu%08Xv pop3_uidl_format(imap): %08Xu%08Xv pop3_uidl_format(pop3): %f pop3_client_workarounds(default): pop3_client_workarounds(imap): pop3_client_workarounds(pop3): outlook-no-nuls namespace: type: private prefix: INBOX. inbox: yes list: yes subscriptions: yes auth default: mechanisms: plain login cache_size: 20480 cache_ttl: 300 cache_negative_ttl: 0 passdb: driver: ldap args: /etc/dovecot/dovecot-ldap.conf userdb: driver: prefetch userdb: driver: ldap args: /etc/dovecot/dovecot-ldap.conf socket: type: listen master: path: /var/run/dovecot/auth-master mode: 438 plugin: quota: maildir quota_rule: *:bytes=10240 quota_rule2: *:messages=30000 autocreate: SPAM.E Spam autocreate2: SPAM.Marcar Spam autocreate3: SPAM autocreate4: SPAM.Desmarcar Spam expire: Trash 1 SPAM 10 SPAM/* 10 Sent 30 expire_dict: proxy::expire auth_socket_path: /var/run/dovecot/auth-master dict: expire: db:/usr/lib/dovecot/expidb/expire.db
Raphael Bittencourt S. Costa wrote:
It's still not working. The dict is called only by expire-tool.
I see the db change as mails are moved around, but I still did not manage to get expire-tool to delete any mail. I guess it uses the current time of day for the action, not a message timestamp, so I will actually have to way a few days to see it work?
Cheers Anders.
On Fri, 2008-04-25 at 02:18 +0200, Anders wrote:
Raphael Bittencourt S. Costa wrote:
It's still not working. The dict is called only by expire-tool.
I see the db change as mails are moved around, but I still did not manage to get expire-tool to delete any mail. I guess it uses the current time of day for the action, not a message timestamp, so I will actually have to way a few days to see it work?
Right. It uses the message's "save time" which with maildir is pretty much the same as the file's ctime.
Timo Sirainen tss@iki.fi writes:
Right. It uses the message's "save time" which with maildir is pretty much the same as the file's ctime.
I never got so far as to expire mail, because things blew up after some time, and thus bouncing mails :-(. So now we have disabled the expire plugin.
dovecot: dict: db_env: Unable to allocate memory for transaction detail
dovecot: dict: Failed to initialize dictionary 'expire'
postfix/pipe[13683]: 1031E107806E: to=am@example.invalid, relay=vprocmail, delay=0.18, delays=0.04/0.01/0/0.13, dsn=5.3.0, status=bounced (Command died with signal 11: "/usr/local/bin/deliver-wrapper")
Cheers, Anders.
On Sun, 2008-04-27 at 21:25 +0200, Anders wrote:
Timo Sirainen tss@iki.fi writes:
Right. It uses the message's "save time" which with maildir is pretty much the same as the file's ctime.
I never got so far as to expire mail, because things blew up after some time, and thus bouncing mails :-(. So now we have disabled the expire plugin.
dovecot: dict: db_env: Unable to allocate memory for transaction detail
Hmm. This should help: http://hg.dovecot.org/dovecot-1.1/rev/768231eb84cf
The default transaction count is too small.
postfix/pipe[13683]: 1031E107806E: to=am@example.invalid, relay=vprocmail, delay=0.18, delays=0.04/0.01/0/0.13, dsn=5.3.0, status=bounced (Command died with signal 11: "/usr/local/bin/deliver-wrapper")
It still shouldn't crash though. Can you get a gdb backtrace? Also you could modify your deliver-wrapper to change signal 11 to tempfail to avoid bounces when it crashes.
On Sun, 2008-05-04 at 18:14 +0300, Timo Sirainen wrote:
postfix/pipe[13683]: 1031E107806E: to=am@example.invalid, relay=vprocmail, delay=0.18, delays=0.04/0.01/0/0.13, dsn=5.3.0, status=bounced (Command died with signal 11: "/usr/local/bin/deliver-wrapper")
It still shouldn't crash though. Can you get a gdb backtrace?
Probably fixed by this: http://hg.dovecot.org/dovecot-1.1/rev/955ae7b7ad1a
Could you send your configuration? Because on my server the imap still doesn't start dict process,
On Fri, 2008-04-25 at 02:18 +0200, Anders wrote:
Raphael Bittencourt S. Costa wrote:
It's still not working. The dict is called only by expire-tool.
I see the db change as mails are moved around, but I still did not manage to get expire-tool to delete any mail. I guess it uses the current time of day for the action, not a message timestamp, so I will actually have to way a few days to see it work?
Cheers Anders.
[]s,
Raphael Costa
Raphael Bittencourt S. Costa wrote:
Could you send your configuration? Because on my server the imap still doesn't start dict process,
My configuration looks just like yours, except I also use "deliver", so I have expire in the lda section as well.
I am not quite sure how this is supposed to work. It seems that the dict process is not started immediately. I have to go into a folder and expunge (delete message, then compact folder in Thunderbird) the oldest message before dict starts up.
Regards, Anders.
participants (3)
-
Anders
-
Raphael Bittencourt S. Costa
-
Timo Sirainen