ml+openldap@esmtp.org wrote:
On Fri, Jul 29, 2011, Howard Chu wrote:
The ITS mailer only supports plaintext, no attachments.
Sorry about that. Here's the log inline (5 attempts by syncrepl):
I was able to reproduce this behavior. The culprit is the ldap_result() call in do_syncrep2() returning 0 due to a timeout. The actual sequence of events is that do_syncrep1() successfully binds to the master and sends a syncsearch request, then do_syncrep2() reads the search response. The first message is a Present UUID list which it parses successfully. It then loops back to look for the next message from the provider, but due to whatever timing vagaries, that message is not available yet. But anyway, do_syncrep2() returns with rc=0 and this resets the retry counter, as I said before.
At the moment I don't have any good ideas how this could be fixed in the code. Timeouts of this sort are normal behavior for refreshAndPersist. I guess we need to keep using the NULL timeout while the connection is actually in its Refresh phase, before it enters its Persist phase.
I think you could workaround it by using delta-syncrepl, which doesn't use a Present UUID list.
This will require some more thought.