quota clone + mysql + duplicate key

Dimos Alevizos dalevizo at otenet.gr
Mon Jun 5 11:16:39 EEST 2017


I'm trying to setup quota clone with mysql on dovecot 2.2.29.1.
I see in the wiki that the table is always updated to the new value
(https://wiki.dovecot.org/Plugins/QuotaClone) :
> Every time quota is updated, the value is updated to the cloned dict.
> There are race conditions with it so the quota may not always be 100%
> correct. The old value is always replaced with the new one though (not
> just incremented/decremented) so the cloned quota is never too much wrong.
But the queries I see don't agree :
1186029 Query   BEGIN
1186029 Query   INSERT INTO quota (bytes,messages,username) VALUES
(25002030,226,'user at domain.tld') ON DUPLICATE KEY UPDATE
bytes=bytes+25002030,messages=messages+226
1186029 Query   COMMIT

Is it a bug or am I missing something in my configuration ?
The relevant part of the config :

dict {
  sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}

plugin {
  quota = count:User quota
  quota_clone_dict = proxy::sqlquota
  quota_exceeded_message = Quota for this mail account has been
exceeded, please try again later.
  quota_grace = 1M
  quota_vsizes = yes
}

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
}

Dimos


More information about the dovecot mailing list