Hi all,
Maybe someone here can help me with this problem, not sure if this is a
configuration issue or an actual bug.
my daily cron job says:
#!/bin/sh
doveadm expunge -A mailbox Junk savedbefore 14d
doveadm expunge -A mailbox Trash savedbefore 30d
doveadm expunge -A mailbox "Trash.*" savedbefore 30d
But it hasn't been deleting any messages in a long time, I'm not sure
when it stopped working.
I've also noticed that it does delete matching rows in the expires
database (expire_stamp < savedbefore days).
Furthermore, rows are deleted even when running doveadm search, and
regardless of the mailbox column, i.e. even when != the mailbox name
being searched!
Anyway why should doveadm search delete rows in the expires database?
The database is mysql.
---- dovecot -n ----
# 2.1.7: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-0.bpo.3-amd64 x86_64 Debian 6.0.6
auth_default_realm = xxxxxxx.com
auth_mechanisms = plain login cram-md5
auth_verbose = yes
auth_verbose_passwords = plain
default_client_limit = 8096
dict {
expire = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
mail_gid = vmail
mail_plugins = quota expire listescape
mail_uid = vmail
managesieve_sieve_capability = fileinto envelope encoded-character
subaddress comparator-i;ascii-numeric relational regex imap4flags copy
include variables mailbox date ihave
namespace {
inbox = yes
location prefix separator = /
type = private
}
passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
plugin {
antispam_backend = pipe
antispam_pipe_program = /usr/bin/ssh
antispam_pipe_program_args =
-l;spamd;-i;/etc/dovecot/sareport.key;mx1.xxxxxxx.com
antispam_pipe_program_notspam_arg = revoke
antispam_pipe_program_spam_arg = report
antispam_pipe_tmpdir = /tmp
antispam_spam = Junk
antispam_trash_pattern_ignorecase = trash;Deleted *
autocreate = Trash
autocreate2 = Junk
autocreate3 = Drafts
autocreate4 = Sent
autosubscribe = Trash
autosubscribe2 = Junk
autosubscribe3 = Drafts
autosubscribe4 = Sent
expire = Trash
expire2 = Trash.*
expire3 = Junk
expire_dict = proxy::expire
quota = dict:user::proxy::quota
quota_rule = *:storage=2G
quota_rule2 = Trash:storage=+250M
quota_rule3 = Junk:ignore
quota_warning = storage=99%% quota-warning 99 %u
quota_warning2 = storage=95%% quota-warning 95 %u
sieve = ~/.dovecot.sieve
sieve_before = /var/local/lib/dovecot/sieve/global/fileinto-spam.sieve
sieve_dir = ~/sieve
sieve_extensions = -vacation -body -reject -enotify -environment
-virustest -spamtest
sieve_max_actions = 32
sieve_max_redirects = 4
sieve_max_script_size = 10K
sieve_quota_max_scripts = 10
}
postmaster_address = postmaster at xxxxxxx.com
protocols = imap pop3 lmtp sieve
service auth-worker {
user = $default_internal_user
}
service auth {
client_limit = 20480
unix_listener auth-userdb {
group = root
mode = 0600
user = vmail
}
}
service dict {
unix_listener dict {
mode = 0600
user = vmail
}
}
service imap-login {
process_min_avail = 4
service_count = 0
vsz_limit = 128 M
}
service imap {
process_limit = 10240
}
service lmtp {
inet_listener lmtp {
address = 0.0.0.0
port = 7025
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
service_count = 0
vsz_limit = 128 M
}
service pop3-login {
process_min_avail = 4
service_count = 0
vsz_limit = 128 M
}
service pop3 {
process_limit = 4096
}
service quota-warning {
executable = script /usr/local/bin/quota-warning
unix_listener quota-warning {
user = vmail
}
user = vmail
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
driver = prefetch
}
userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
verbose_proctitle = yes
protocol lmtp {
mail_plugins = quota expire listescape sieve
}
protocol lda {
mail_plugins = quota expire listescape sieve
}
protocol imap {
mail_max_userip_connections = 25
mail_plugins = quota expire listescape autocreate imap_quota antispam
ssl_cert = </etc/dovecot/imap.xxxxxxx.com.crt
ssl_key = </etc/dovecot/imap.xxxxxxx.com.key
}
protocol sieve {
mail_max_userip_connections = 10
}
protocol pop3 {
mail_max_userip_connections = 10
mail_plugins = quota expire listescape
pop3_fast_size_lookups = yes
pop3_lock_session = no
pop3_no_flag_updates = yes
pop3_reuse_xuidl = yes
pop3_save_uidl = no
pop3_uidl_format = %08Xu%08Xv
ssl_cert = </etc/dovecot/pop.xxxxxxx.com.crt
ssl_key = </etc/dovecot/pop.xxxxxxx.com.key
}
in dovecot-sql.conf.ext I have:
iterate_query = SELECT userid as user, domain FROM email where deleted=0
---- dovecot-dict-sql.conf.ext ----
connect = host=localhost dbname=email user=email
map {
pattern = priv/quota/storage
table = quota
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota
username_field = username
value_field = messages
}
map {
pattern = shared/expire/$user/$mailbox
table = expires
value_field = expire_stamp
fields {
username = $user
mailbox = $mailbox
}
}
Anyone..? Is there any further detail I can provide? This is really puzzling me. Gedalya On 01/02/2013 06:44 PM, Gedalya wrote:> Hi all, > > Maybe someone here can help me with this problem, not sure if this is > a configuration issue or an actual bug. > > my daily cron job says: > > #!/bin/sh > doveadm expunge -A mailbox Junk savedbefore 14d > doveadm expunge -A mailbox Trash savedbefore 30d > doveadm expunge -A mailbox "Trash.*" savedbefore 30d > > But it hasn't been deleting any messages in a long time, I'm not sure > when it stopped working. > > I've also noticed that it does delete matching rows in the expires > database (expire_stamp < savedbefore days). > Furthermore, rows are deleted even when running doveadm search, and > regardless of the mailbox column, i.e. even when != the mailbox name > being searched! > Anyway why should doveadm search delete rows in the expires database? > > The database is mysql. > > ---- dovecot -n ---- > # 2.1.7: /etc/dovecot/dovecot.conf > # OS: Linux 3.2.0-0.bpo.3-amd64 x86_64 Debian 6.0.6 > auth_default_realm = xxxxxxx.com > auth_mechanisms = plain login cram-md5 > auth_verbose = yes > auth_verbose_passwords = plain > default_client_limit = 8096 > dict { > expire = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext > quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext > } > disable_plaintext_auth = no > mail_gid = vmail > mail_plugins = quota expire listescape > mail_uid = vmail > managesieve_sieve_capability = fileinto envelope encoded-character > subaddress comparator-i;ascii-numeric relational regex imap4flags copy > include variables mailbox date ihave > namespace { > inbox = yes > location > prefix > separator = / > type = private > } > passdb { > args = /etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > plugin { > antispam_backend = pipe > antispam_pipe_program = /usr/bin/ssh > antispam_pipe_program_args = > -l;spamd;-i;/etc/dovecot/sareport.key;mx1.xxxxxxx.com > antispam_pipe_program_notspam_arg = revoke > antispam_pipe_program_spam_arg = report > antispam_pipe_tmpdir = /tmp > antispam_spam = Junk > antispam_trash_pattern_ignorecase = trash;Deleted * > autocreate = Trash > autocreate2 = Junk > autocreate3 = Drafts > autocreate4 = Sent > autosubscribe = Trash > autosubscribe2 = Junk > autosubscribe3 = Drafts > autosubscribe4 = Sent > expire = Trash > expire2 = Trash.* > expire3 = Junk > expire_dict = proxy::expire > quota = dict:user::proxy::quota > quota_rule = *:storage=2G > quota_rule2 = Trash:storage=+250M > quota_rule3 = Junk:ignore > quota_warning = storage=99%% quota-warning 99 %u > quota_warning2 = storage=95%% quota-warning 95 %u > sieve = ~/.dovecot.sieve > sieve_before = /var/local/lib/dovecot/sieve/global/fileinto-spam.sieve > sieve_dir = ~/sieve > sieve_extensions = -vacation -body -reject -enotify -environment > -virustest -spamtest > sieve_max_actions = 32 > sieve_max_redirects = 4 > sieve_max_script_size = 10K > sieve_quota_max_scripts = 10 > } > postmaster_address = postmaster at xxxxxxx.com > protocols = imap pop3 lmtp sieve > service auth-worker { > user = $default_internal_user > } > service auth { > client_limit = 20480 > unix_listener auth-userdb { > group = root > mode = 0600 > user = vmail > } > } > service dict { > unix_listener dict { > mode = 0600 > user = vmail > } > } > service imap-login { > process_min_avail = 4 > service_count = 0 > vsz_limit = 128 M > } > service imap { > process_limit = 10240 > } > service lmtp { > inet_listener lmtp { > address = 0.0.0.0 > port = 7025 > } > } > service managesieve-login { > inet_listener sieve { > port = 4190 > } > service_count = 0 > vsz_limit = 128 M > } > service pop3-login { > process_min_avail = 4 > service_count = 0 > vsz_limit = 128 M > } > service pop3 { > process_limit = 4096 > } > service quota-warning { > executable = script /usr/local/bin/quota-warning > unix_listener quota-warning { > user = vmail > } > user = vmail > } > ssl_cert = </etc/ssl/certs/dovecot.pem > ssl_key = </etc/ssl/private/dovecot.pem > userdb { > driver = prefetch > } > userdb { > args = /etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > verbose_proctitle = yes > protocol lmtp { > mail_plugins = quota expire listescape sieve > } > protocol lda { > mail_plugins = quota expire listescape sieve > } > protocol imap { > mail_max_userip_connections = 25 > mail_plugins = quota expire listescape autocreate imap_quota antispam > ssl_cert = </etc/dovecot/imap.xxxxxxx.com.crt > ssl_key = </etc/dovecot/imap.xxxxxxx.com.key > } > protocol sieve { > mail_max_userip_connections = 10 > } > protocol pop3 { > mail_max_userip_connections = 10 > mail_plugins = quota expire listescape > pop3_fast_size_lookups = yes > pop3_lock_session = no > pop3_no_flag_updates = yes > pop3_reuse_xuidl = yes > pop3_save_uidl = no > pop3_uidl_format = %08Xu%08Xv > ssl_cert = </etc/dovecot/pop.xxxxxxx.com.crt > ssl_key = </etc/dovecot/pop.xxxxxxx.com.key > } > > > in dovecot-sql.conf.ext I have: > iterate_query = SELECT userid as user, domain FROM email where deleted=0 > > > ---- dovecot-dict-sql.conf.ext ---- > connect = host=localhost dbname=email user=email > map { > pattern = priv/quota/storage > table = quota > username_field = username > value_field = bytes > } > map { > pattern = priv/quota/messages > table = quota > username_field = username > value_field = messages > } > map { > pattern = shared/expire/$user/$mailbox > table = expires > value_field = expire_stamp > fields { > username = $user > mailbox = $mailbox > } > } >
Am 09.01.2013 03:23, schrieb Gedalya:> Anyone..? > Is there any further detail I can provide? > This is really puzzling me. > > Gedalya > > On 01/02/2013 06:44 PM, Gedalya wrote: >> Hi all, >> >> Maybe someone here can help me with this problem, not sure if this is >> a configuration issue or an actual bug. >> >> my daily cron job says: >> >> #!/bin/sh >> doveadm expunge -A mailbox Junk savedbefore 14d >> doveadm expunge -A mailbox Trash savedbefore 30d >> doveadm expunge -A mailbox "Trash.*" savedbefore 30ddo verbose logging during cron Best Regards MfG Robert Schetterer -- [*] sys4 AG http://sys4.de, +49 (89) 30 90 46 64 Franziskanerstra?e 15, 81669 M?nchen Sitz der Gesellschaft: M?nchen, Amtsgericht M?nchen: HRB 199263 Vorstand: Patrick Ben Koetter, Axel von der Ohe, Marc Schiffbauer Aufsichtsratsvorsitzender: Joerg Heidrich