On Mon, 2011-06-27 at 12:11 +0000, Bernhard Schmidt
wrote:> Hi,
>
> we recently hit an issue where one (of the three configured) LDAP
> servers dropped an index on an attribute due to a misconfiguration,
> which caused all/most queries for passdb to take a very long time
> (several 10s of seconds).
>
> The other servers would have been fine, but it seems like Dovecot does
> either not set a timelimit on the query or uses a very high one. I could
> not find any place to control that either.
>
> Is there any knob to tune the LDAP timeout?
Fallbacking to another LDAP server is done by OpenLDAP internally. So
what would be needed is either a) OpenLDAP to itself figure out that
queries are running too slowly and see if another server is faster, or
b) Dovecot figure that out itself and force OpenLDAP to switch to
another server.
I don't know if either of them is possible with OpenLDAP API as it is. I
doubt it.
Oh, also possibility c) Have Dovecot manage all the different LDAP
server connections instead of OpenLDAP. Probably what I will have to do
eventually anyway. That would allow also load balancing by actually
using multiple connections, similar to how SQL code does it now. But
yeah, that does remind me that I probably should change the SQL load
balancing code to look at the query times.