On Mon, 2007-01-22 at 14:45 +0100, J.M. Maurer wrote:
Are you using auth_bind=yes? That's been a bit broken. I finally today did several fixes to it so that it won't hang at least with my stress tests. The code is now in CVS and I built a new nightly snapshot if you want to try before rc18 release.
Looks like ldap_bind() can't really be used while anything else is going on. Now the code waits until all the existing LDAP searches are finished, then it does the bind, and then nothing is done until the bind is finished.
This fix seems to make it behave a lot better!
I think I can still trigger this issue though, by opening Outlook 2003 (sorry :X), and holding down F9 for a bit (send/receive shortcut). When the send/receive query contains about 5+ actions, outlook stops responding.
But still a LOT better then before. At least when the problem occurs, other users can still login, which wasn't the case before.
Could it be because of Outlook? ;) I tested it with 100 simultaneous virtual clients doing login+logout all the time and didn't notice any hangs. You could set auth_debug=yes and look at the logs what happens when the F9 is being hold. Does it log an ldap_bind() that just doesn't seem to get a reply?
Hmm. Actually now that I think of it, the ldap_bind() must give a reply before the connection is used for anything else. So if the other users can still log in, I think there's a good chance that the bug isn't in Dovecot's side.