Trash quota issue

Stephan Herker herker at gmail.com
Tue Oct 10 18:12:59 EEST 2017


I have quotas setup on a test domain to try everything out before I move 
my domains email over to dovecot.  I have a trash quota rule that should 
have added 100M to trash folder specifically, but mail was denied due to 
quota being full even though the only mail in the test account was in 
trash.  Below are debug log lines and dovecot -n output.


Oct 07 17:16:03 lmtp(26801): Debug: none: root=, index=, indexpvt=, 
control=, inbox=, alt=
Oct 07 17:16:03 lmtp(26801): Info: Connect from local
Oct 07 17:16:03 lmtp(26801): Debug: Loading modules from directory: 
/usr/lib64/dovecot
Oct 07 17:16:03 lmtp(26801): Debug: Module loaded: 
/usr/lib64/dovecot/lib10_quota_plugin.so
Oct 07 17:16:03 lmtp(26801): Debug: Module loaded: 
/usr/lib64/dovecot/lib20_autocreate_plugin.so
Oct 07 17:16:03 lmtp(26801): Debug: Module loaded: 
/usr/lib64/dovecot/lib90_sieve_plugin.so
Oct 07 17:16:03 lmtp(26801): Debug: auth input: 123 at testdo.com 
home=/home/vmail/testdo.com/123 mail=maildir:/home/vmail/testdo.com/123 
uid=2000 gid=2000 quota_rule=*:storage=20000
Oct 07 17:16:03 lmtp(26801): Debug: Added userdb setting: 
mail=maildir:/home/vmail/testdo.com/123
Oct 07 17:16:03 lmtp(26801): Debug: Added userdb setting: 
plugin/quota_rule=*:storage=20000
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: Effective uid=2000, 
gid=2000, home=/home/vmail/testdo.com/123
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: Quota root: 
name=User quota backend=dict args=:proxy::quotadict
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: Quota rule: 
root=User quota mailbox=* bytes=20480000 messages=0
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: Quota rule: 
root=User quota mailbox=Trash bytes=+104857600 messages=0
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: Quota grace: 
root=User quota bytes=2048000 (10%)
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: dict quota: 
user=123 at testdo.com, uri=proxy::quotadict, noenforcing=0
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: Namespace inbox: 
type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, 
subscriptions=yes location=maildir:/home/vmail/testdo.com/123
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: maildir++: 
root=/home/vmail/testdo.com/123, index=, indexpvt=, control=, 
inbox=/home/vmail/testdo.com/123, alt=
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: sieve: Pigeonhole 
version 0.4.2 initializing
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: 
OFqmG0Nu2VmxaAAAobcTNA: sieve: using the following location for user's 
Sieve script: /home/vmail/testdo.com/123/.dovecot.sieve;name=main script
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: 
OFqmG0Nu2VmxaAAAobcTNA: sieve: loading script 
/home/vmail/testdo.com/123/.dovecot.sieve;name=main script
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: 
OFqmG0Nu2VmxaAAAobcTNA: sieve: script binary 
/home/vmail/testdo.com/123/.dovecot.svbin is not up-to-date
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: 
OFqmG0Nu2VmxaAAAobcTNA: sieve: script `main script' from 
/home/vmail/testdo.com/123/.dovecot.sieve;name=main script successfully 
compiled
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Debug: 
OFqmG0Nu2VmxaAAAobcTNA: sieve: executing script from 
/home/vmail/testdo.com/123/.dovecot.sieve;name=main script
Oct 07 17:16:03 lmtp(26801, 123 at testdo.com): Info: 
OFqmG0Nu2VmxaAAAobcTNA: sieve: 
msgid=<3a1e5ba2-f0a7-4cec-e7fb-bf5202c2152d at keagaming.com>: failed to 
store into mailbox 'INBOX': Quota exceeded (mailbox for user is full)

# 2.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-514.26.2.el7.x86_64 x86_64 CentOS Linux release 
7.4.1708 (Core)  xfs
auth_mechanisms = plain login
dict {
   quotadict = mysql:/etc/dovecot/dovecot-dict-quota.conf
}
first_valid_uid = 2000
hostname = testdo.com
last_valid_uid = 2000
log_path = /var/log/dovecot.log
mail_debug = yes
mail_gid = vmail
mail_location = maildir:/home/vmail/%d/%n
mail_plugins = " quota trash expire"
mail_privileged_group = mail
mail_uid = vmail
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope 
encoded-character vacation subaddress comparator-i;ascii-numeric 
relational regex imap4flags copy include variables body enotify 
environment mailbox date ihave
mbox_write_locks = fcntl
namespace inbox {
   inbox = yes
   location =
   mailbox Drafts {
     auto = subscribe
     special_use = \Drafts
   }
   mailbox Junk {
     auto = subscribe
     special_use = \Junk
   }
   mailbox Sent {
     auto = subscribe
     special_use = \Sent
   }
   mailbox "Sent Messages" {
     special_use = \Sent
   }
   mailbox Trash {
     auto = subscribe
     special_use = \Trash
   }
   prefix =
}
passdb {
   args = /etc/dovecot/dovecot-sql.conf.ext
   driver = sql
}
plugin {
   quota = dict:User quota::proxy::quotadict
   quota_grace = 10%%
   quota_rule2 = Trash:storage=+100M
   quota_status_nouser = DUNNO
   quota_status_overquota = 552 5.2.2 Mailbox is full
   quota_status_success = DUNNO
   sieve_dir = ~/sieve
   sieve_global_dir = /etc/dovecot/sieve/global/
   sieve_global_path = /etc/dovecot/sieve/default.sieve
   trash = /etc/dovecot/dovecot-trash.conf.ext
}
postmaster_address = administrator at testdo.com
protocols = imap lmtp sieve
service auth-worker {
   user = vmail
}
service auth {
   unix_listener /var/spool/postfix/private/auth {
     group = postfix
     mode = 0666
     user = postfix
   }
   unix_listener auth-client {
     group = postfix
     mode = 0660
     user = postfix
   }
   unix_listener auth-master {
     group = vmail
     mode = 0660
     user = vmail
   }
   unix_listener auth-userdb {
     mode = 0600
     user = vmail
   }
   user = dovecot
}
service dict {
   unix_listener dict {
     group = vmail
     mode = 0600
     user = vmail
   }
}
service imap-login {
   inet_listener imap {
     port = 143
   }
}
service lmtp {
   executable = lmtp -L
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
     group = postfix
     mode = 0600
     user = postfix
   }
}
service managesieve-login {
   inet_listener sieve {
     port = 4190
   }
}
service pop3-login {
   inet_listener pop3 {
     port = 110
   }
}
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
   args = /etc/dovecot/dovecot-sql.conf.ext
   driver = sql
}
protocol lmtp {
   info_log_path = /var/log/dovecot-lmtp.log
   log_path = /var/log/dovecot-lmtp-errors.log
   mail_plugins = " quota trash expire autocreate sieve quota"
   postmaster_address = postmaster at testdo.com
}
protocol sieve {
   info_log_path = /var/log/dovecot-sieve.log
   log_path = /var/log/dovecot-sieve-errors.log
   managesieve_implementation_string = dovecot
   managesieve_max_line_length = 65536
}
protocol imap {
   mail_plugins = " quota trash expire imap_quota notify quota"
}
protocol pop3 {
   mail_plugins = " quota trash expire quota"
}

Any help is appreciated, thanks.



More information about the dovecot mailing list