If the expire plugin is enabled and a new message (not in trash) is deleted via IMAP in Mozilla Thunderbird (only tested in this client), it will indefinately copy the message into the folder. Dovecot, meanwhile, occupies itself with this:
root@server:~# cat /var/log/dovecot.log [...] dovecot: 2008-12-26 09:21% Error: child 6132 (imap) killed with signal 11 dovecot: 2008-12-26 09:21% Error: child 6133 (imap) killed with signal 11 dovecot: 2008-12-26 09:21% Error: child 6134 (imap) killed with signal 11 dovecot: 2008-12-26 09:21% Error: child 6135 (imap) killed with signal 11 dovecot: 2008-12-26 09:21% Error: child 6136 (imap) killed with signal 11 dovecot: 2008-12-26 09:21% Error: child 6138 (imap) killed with signal 11 dovecot: 2008-12-26 09:21% Error: child 6139 (imap) killed with signal 11 dovecot: 2008-12-26 09:21% Error: child 6140 (imap) killed with signal 11 dovecot: 2008-12-26 09:21% Error: child 6142 (imap) killed with signal 11 [...]
root@server:~# cat /var/log/dovecot.info [...] dovecot: 2008-12-26 09:21% Info: imap-login: Login: user=<admin@bildig.ch>, method=CRAM-MD5, rip=84.75.159.19, lip=92.42.190.87, TLS dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Loading modules from directory: /usr/lib/dovecot/modules/imap dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Module loaded: /usr/lib/dovecot/modules/imap/lib10_quota_plugin.so dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Module loaded: /usr/lib/dovecot/modules/imap/lib11_imap_quota_plugin.so dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Module loaded: /usr/lib/dovecot/modules/imap/lib20_expire_plugin.so dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Effective uid=5000, gid=5000, home=/home/vmail/Maildirs/bildig.ch/admin dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Quota root: name=User Quota backend=maildir args= dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Quota rule: root=User Quota mailbox=* bytes=524288000 (0%) messages=0 (0%) dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Quota rule: root=User Quota mailbox=Trash bytes=52428800 (0%) messages=0 (0%) dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Quota warning: bytes=498073600 (95%) messages=0 (0%) command=/usr/local/bin/mail-quota-warning.sh 95 dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Quota warning: bytes=419430400 (80%) messages=0 (0%) command=/usr/local/bin/mail-quota-warning.sh 80 dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): maildir: data=/home/vmail/Maildirs/bildig.ch/admin dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): maildir++: root=/home/vmail/Maildirs/bildig.ch/admin, index=, control=, inbox=/home/vmail/Maildirs/bildig.ch/admin dovecot: 2008-12-26 09:21% Info: imap-login: Login: user=<admin@bildig.ch>, method=CRAM-MD5, rip=84.75.159.19, lip=92.42.190.87, TLS dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Loading modules from directory: /usr/lib/dovecot/modules/imap dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Module loaded: /usr/lib/dovecot/modules/imap/lib10_quota_plugin.so dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Module loaded: /usr/lib/dovecot/modules/imap/lib11_imap_quota_plugin.so dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Module loaded: /usr/lib/dovecot/modules/imap/lib20_expire_plugin.so dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Effective uid=5000, gid=5000, home=/home/vmail/Maildirs/bildig.ch/admin dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Quota root: name=User Quota backend=maildir args= dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Quota rule: root=User Quota mailbox=* bytes=524288000 (0%) messages=0 (0%) dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Quota rule: root=User Quota mailbox=Trash bytes=52428800 (0%) messages=0 (0%) dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Quota warning: bytes=498073600 (95%) messages=0 (0%) command=/usr/local/bin/mail-quota-warning.sh 95 dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): Quota warning: bytes=419430400 (80%) messages=0 (0%) command=/usr/local/bin/mail-quota-warning.sh 80 dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): maildir: data=/home/vmail/Maildirs/bildig.ch/admin dovecot: 2008-12-26 09:21% Info: IMAP(admin@bildig.ch): maildir++: root=/home/vmail/Maildirs/bildig.ch/admin, index=, control=, inbox=/home/vmail/Maildirs/bildig.ch/admin [...]
When the expire plugin is disabled no error occurs. I use Dovecot 1.1.4 on Ubuntu 8.10 Intrepid with following settings:
root@server:~# dovecot -n # 1.1.4: /etc/dovecot/dovecot.conf base_dir: /var/run/dovecot/ log_path: /var/log/dovecot.log info_log_path: /var/log/dovecot.info log_timestamp: %Y-%m-%d %H:%M% protocols: imaps pop3s ssl_cert_file: /etc/ssl/certs/www_bildig_ch__chained.crt ssl_key_file: /etc/ssl/private/www_bildig_ch.key 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_greeting: Dovecot ready login_process_per_connection: no login_processes_count: 1 login_max_processes_count: 8 login_max_connections: 64 valid_chroot_dirs: /var/spool/vmail mail_debug: yes mail_location: maildir:/home/vmail/Maildirs/%d/%n mail_executable(default): /usr/lib/dovecot/imap mail_executable(imap): /usr/lib/dovecot/imap mail_executable(pop3): /usr/lib/dovecot/pop3 mail_process_size: 64 mail_plugins(default): expire imap_quota quota mail_plugins(imap): expire imap_quota quota mail_plugins(pop3): expire quota 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 pop3_uidl_format(default): %08Xu%08Xv pop3_uidl_format(imap): %08Xu%08Xv pop3_uidl_format(pop3): %08%08Xv auth default: mechanisms: cram-md5 passdb: driver: sql args: /etc/dovecot/dovecot-sql.conf userdb: driver: static args: uid=vmail gid=vmail home=/home/vmail/Maildirs/%d/%n allow_all_users=yes socket: type: listen client: path: /var/spool/postfix/private/auth mode: 432 user: postfix group: postfix master: path: /var/run/dovecot/auth-master mode: 384 user: vmail plugin: expire: Trash 30 Trash/* 30 Spam 30 expire_dict: proxy::expire quota: maildir:User Quota quota_rule: *:storage=500M quota_rule2: Trash:storage=50M quota_warning: storage=95%% /usr/local/bin/mail-quota-warning.sh 95 quota_warning2: storage=80%% /usr/local/bin/mail-quota-warning.sh 80 dict: expire: mysql:/etc/dovecot/dovecot-dict-expire.conf
root@server:~# cat /etc/dovecot/dovecot-sql.conf driver = mysql connect = host=127.0.0.1 dbname=mailserver user=mailserver password=testpwd1 default_pass_scheme = CRAM-MD5 password_query = SELECT email AS user, password, quota_rule FROM view_users WHERE email='%u'
root@server:~# cat /etc/dovecot/dovecot-dict-expire.conf connect = host=localhost dbname=mailserver user=mailserver_exp password=testpwd2 table = expire select_field = expire_stamp where_field = mailbox
I tried using a "user_field = user" additionally as is written here: http://wiki.dovecot.org/Plugins/Expire. (Incidentally, there must be some mismatch in the documentation because the tables for v1.1 do not contain a field username). Of course I adapted the MySQL database accordingly.
Unfortunately I was unable to produce a backtrace.
Thanks, Joerg Leis