[Dovecot] expire-tool skipping mailbox

Alex Reinhart alex at scienceforums.net
Mon Apr 18 22:45:04 EEST 2011


I resolved this issue by deleting some messages from my Junk mailbox which had Date headers long in the past and future, despite being very old. It appears to me that expire-tool quit when a message had a Date header forged to be non-expired, despite the message being old enough to have been expired. A bug in expire-tool?

- Alex Reinhart



On Apr 15, 2011, at 3:15 PM, Alex Reinhart wrote:

> Hello,
> 
> I have dovecot set up with expire-tool to nuke Junk messages greater than 30 days old. On a server with many user accounts, it seems to work on most of them.
> 
> However, on my user account, expire-tool skips my Junk folder entirely, despite it containing messages from January of this year. Here is the expire-tool --test output:
> 
> Info: alex at scienceforums.net/Junk: timestamp 1284027481 (Thu Sep  9 05:18:01 2010) -> 1304023056 (Thu Apr 28 15:37:36 2011)
> 
> Then it skips to the next mailbox. (Note that I intentionally set the timestamp back to force it to consider my mailbox.) I don't understand why it doesn't want to expunge my 2700 junk messages when it will expunge several thousand in other accounts happily. The expire plugin has been enabled for probably over a year, so all of the messages should be tracked.
> 
> My only hypothesis is that it has something to do with variables in the mail_location; however, mail_location should be overridden by a user_query, though that contains variables too. Would this account for the issue? It seems unlikely, since other users on the server work just fine.
> 
> dovecot -n output for the interested:
> 
> # 1.2.9: /etc/dovecot/dovecot.conf
> # OS: Linux 2.6.32-24-server x86_64 Ubuntu 10.04.2 LTS ext3
> base_dir: /var/run/dovecot/
> log_timestamp: %Y-%m-%d %H:%M:%S
> protocols: managesieve imaps pop3s
> listen(default): *:143
> listen(imap): *:143
> listen(pop3): *:110
> listen(managesieve): *
> ssl_listen(default): *:993
> ssl_listen(imap): *:993
> ssl_listen(pop3): *:995
> ssl_listen(managesieve): 
> login_dir: /var/run/dovecot//login
> login_executable(default): /usr/lib/dovecot/imap-login
> login_executable(imap): /usr/lib/dovecot/imap-login
> login_executable(pop3): /usr/lib/dovecot/pop3-login
> login_executable(managesieve): /usr/lib/dovecot/managesieve-login
> first_valid_uid: 150
> last_valid_uid: 150
> mail_privileged_group: mail
> mail_location: maildir:/var/vmail/%d/%u
> mbox_write_locks: fcntl dotlock
> mail_executable(default): /usr/lib/dovecot/imap
> mail_executable(imap): /usr/lib/dovecot/imap
> mail_executable(pop3): /usr/lib/dovecot/pop3
> mail_executable(managesieve): /usr/lib/dovecot/managesieve
> mail_plugins(default): quota imap_quota expire
> mail_plugins(imap): quota imap_quota expire
> mail_plugins(pop3): quota expire
> mail_plugins(managesieve): 
> mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
> mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
> mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3
> mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve
> lda:
>  mail_plugins: quota sieve expire
>  postmaster_address: postmaster at xyloid.org
>  sendmail_path: /usr/lib/sendmail
>  auth_socket_path: /var/run/dovecot/auth-master
>  sieve_global_path: /etc/dovecot/sieve.global
> auth default:
>  user: nobody
>  passdb:
>    driver: sql
>    args: /etc/dovecot/dovecot-sql.conf
>  userdb:
>    driver: sql
>    args: /etc/dovecot/dovecot-sql.conf
>  socket:
>    type: listen
>    client:
>      path: /var/spool/postfix/private/auth
>      mode: 432
>      user: postfix
>      group: postfix
>    master:
>      path: /var/run/dovecot/auth-master
>      mode: 432
>      user: vmail
>      group: mail
> plugin:
>  quota: dict:user::proxy::quotadict
>  quota_rule: *:storage=1G
>  quota_rule2: Trash:storage=10%%
>  quota_rule3: Junk:ignore
>  sieve: /var/vmail/%d/%n/dovecot.sieve
>  expire: Trash 7 Trash/* 7 Junk 30
>  expire_dict: proxy::expire
> dict:
>  quotadict: mysql:/etc/dovecot/dovecot-dict-quota.conf
>  expire: mysql:/etc/dovecot/dovecot-dict-expire.conf
> 
> And dovecot-dict-expire.conf:
> 
> connect = host=localhost dbname=mail user=mail password=[password]
> 
> map {
>  pattern = shared/expire/$user/$mailbox
>  table = expires
>  value_field = expire_stamp
> 
>  fields {
>    username = $user
>    mailbox = $mailbox
>  }
> }
> 
> Thanks.
> 
> - Alex Reinhart
> 
> 
> 



More information about the dovecot mailing list