[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#6999) retry: counter not reaching zero, continuing on



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.
-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/