On Thu, 2009-12-10 at 18:06 +0000, Daniel Howard wrote:
Let me make myself clearer.
Dovecot opens a postgres connection, Dovecot sends a SELECT query using the connection, The response can be
a) One or more rows of data b) Zero rows of data (eg if the username doesn't exist) c) An error response (eg if the query contains a syntax error)
If a) or b) happens, then dovecot accepts or denies the user, and closes the connection.
Except it doesn't, or at least it shouldn't.. It should keep using the same connection for all logins.
If c) happens, dovecot denies the user, but leaves the connection open (stuck). Next time someone tries to log on dovecot opens a new connection. This leads to a gradual buildup of connections until the limit is reached and stuff breaks.
I tested that this doesn't happen with v1.2. It may have bee a bug in v1.0.