[Dovecot] Strange quota problem

Jan-Frode Myklebust janfrode at tanso.net
Mon Dec 5 21:14:40 EET 2011


I have a strange problems with quota on v2.0.14. We have an ldap user
directory, and all users should have a mailQuota defined there. My
problem is that some users gets the quota enforced, while others don't, 
and "doveadm user" doesn't seem to agree with "doveadm quota ge gett"

Ref:

	$ doveadm user janfrode at example.net
	userdb: janfrode at example.net
  		home      : /usr/local/atmail/users/j/a/janfrode at example.net
  		mailQuota : quota_rule=*:storage=2100000
	$ doveadm -f tab quota get -u janfrode at example.net
	Quota name	Type	Value	Limit	%
	UserQuota	STORAGE	760	1000000	0
	UserQuota	MESSAGE	62	-	0

Why limit 1000000 instead of 2100000 ?

	$ doveadm user omar at example.net
	userdb: omar at example.net
  		home      : /usr/local/atmail/users/o/m/omar at example.net
  		mailQuota : quota_rule=*:storage=1000000
	$ sudo doveadm -f tab quota get -u omar at example.net
	Quota name	Type	Value	Limit	%
	UserQuota	STORAGE	0	-	0
	UserQuota	MESSAGE	0	-	0

	$ doveadm user testkunde at example.net
	userdb: testkunde at example.net
  		home      : /usr/local/atmail/users/t/e/testkunde at example.net
  		mailQuota : quota_rule=*:storage=1000000
	$ doveadm -f tab quota get -u testkunde at example.net
	Quota name	Type	Value	Limit	%
	UserQuota	STORAGE	33918	-	0
	UserQuota	MESSAGE	137	-	0

Why no storage limit ?

Config below:
------------------------------------------------------------------
$ grep -v ^# /etc/dovecot/dovecot-ldap.conf.ext |grep -v ^$
hosts = ldapm1.example.net:389 ldapm2.example.net:389
auth_bind = yes
auth_bind_userdn = uid=%n,ou=people,o=%d,o=ISP,o=example,c=NET
base = ou=people,o=%d,o=ISP,o=example,c=NET
deref = never
scope = onelevel
user_attrs = mailMessageStore=home, mailLocation=mail, mailQuota=mailQuota=quota_rule=*:storage=%$
user_filter = (&(objectClass=examplePerson)(uid=%n))

$ doveconf -n
# 2.0.14: /etc/dovecot/dovecot.conf
doveconf: Warning: service auth { client_limit=4396 } is lower than required under max. load (4521)
# OS: x86_64 Red Hat Enterprise Linux Server release 5.x (Tikanga) 
auth_verbose = yes
auth_verbose_passwords = sha1
disable_plaintext_auth = no
mail_gid = 3000
mail_location = maildir:~/:INDEX=/indexes/%1u/%1.1u/%u
mail_plugins = quota
mail_uid = 3000
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
mmap_disable = yes
namespace {
  inbox = yes
  location = 
  prefix = INBOX.
  type = private
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
plugin {
  quota = maildir:UserQuota
  sieve = /sieve/%1u/%1.1u/%u/.dovecot.sieve
  sieve_dir = /sieve/%1u/%1.1u/%u
  sieve_max_script_size = 1M
}
protocols = imap pop3 lmtp sieve
service auth-worker {
  user = $default_internal_user
}
service auth {
  client_limit = 4396
}
service imap-login {
  inet_listener imap {
    address = *
    port = 143
  }
}
service imap-postlogin {
  executable = script-login /usr/local/sbin/imap-postlogin.sh
}
service imap {
  executable = imap imap-postlogin
  process_limit = 2048
}
service lmtp {
  client_limit = 1
  inet_listener lmtp {
    address = *
    port = 24
  }
  process_limit = 25
}
service managesieve-login {
  inet_listener sieve {
    address = *
    port = 4190
  }
  service_count = 1
}
service pop3-login {
  inet_listener pop3 {
    address = *
    port = 110
  }
}
service pop3-postlogin {
  executable = script-login /usr/local/sbin/pop3-postlogin.sh
}
service pop3 {
  executable = pop3 pop3-postlogin
  process_limit = 2048
}
ssl = no
userdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
protocol lmtp {
  mail_plugins = quota sieve
}
protocol imap {
  imap_client_workarounds = delay-newmail
  mail_plugins = quota imap_quota
}
protocol pop3 {
  mail_plugins = quota
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
  pop3_uidl_format = UID%u-%v
}
protocol sieve {
  managesieve_logout_format = bytes=%i/%o
}
------------------------------------------------------------------

  -jf


More information about the dovecot mailing list