Wann wird die Dovecot Quota aus der LDAP abgefragt/aktualisiert?

Moin,
wir beobachten auf zwei Systemen unterschiedliches Verhalten:

Auf unserem Testsystem mit UCS 4.2 (und wenigen Testusern) schlägt sich ein Ändern der Quota in der LDAP sofort im Dovecot nieder.
Ein doveadm quota get -u testuser@domain.de zeigt die Quota sofort an.

Auf dem System des Kunden (UCS 4.2.5-517) mit über 600 Usern zeigt das doveadm quota get … noch den alten Wert an. Ein doveadm reload sorgt für eine Aktualisierung.

Wir haben das soweit analysiert, das der Dovecot die Quota Information direkt aus der LDAP abfragt
(Datei: /etc/dovecot/dovecot-ldap.conf.ext).

Wir haben folgenden Fall im Live-System nachgespielt:

  • Die Quota ist überschritten, Mails werden abgelehnt
  • Wir erhöhen die Quota in der LDAP
  • doveadm zeigt keine Änderung
  • Eine weitere Mail wird abgelehnt
  • doveadm zeigt immer noch keine Änderung
  • Der User meldet sich neu am IMAP Server an
  • doveadm zeigt Änderung

Wir würden uns wünschen, dass sich Quota-Änderung vor der Zustellung neuer E-Mails auswirken. Lässt sich das anpassen?

Hallo,

es könnte sich um ein caching Problem handeln.
Bitte prüfen Sie einmal die Aktualisierung der quota mit doveadm auth cache flush statt doveadm reload.

Gruß
Daniel Tröder

Hallo,

ja, ein

doveadm auth cache flush

funktioniert auch, d.H. im Anschluss ist die Quota aktuell.

Antwort auf Englisch um auch von englischsprachigen Usern verstanden zu werden.

The quota for a user is cached together with other authentication data. The time to live (TTL) for cached data can be set with the UCR variable mail/dovecot/auth/cache_ttl.
After TTL expires the cached record is no longer used, except if the main database (LDAP) lookup returns an internal failure. Default is “5 mins”.

So in case you change the quota settings and a user had already connected (and thus its data was stored in the cache), then the quota change will only become active after 5 minutes, or after you empty the cache using doveadm auth cache flush.

To lower the lifetime of cache entries to one minute for example, run:

ucr set mail/dovecot/auth/cache_ttl=1
service dovecot reload

This will slightly lower the performance of the IMAP server, as it will have to do more LDAP queries for user data and PAM requests for authentication - depends mostly on the load on the LDAP server. Try and see how much it affects your system.

Greetings
Daniel Tröder

2 Likes

Moin,

Vielen Dank ud schönes Wochenende

Sven Anders

Mastodon