On 05/12/2011 02:23 PM, Stephen Gallagher wrote:
> On Thu, 2011-05-12 at 13:07 +0200, Jakub Hrozek wrote:
>> https://fedorahosted.org/sssd/ticket/867
>>
>> channel->tries is only used when a query fails. We were forcibly setting
>> it to 0, which meant we never retried another server.
> 
> From the c-ares manual:
> 
> ARES_OPT_TRIES int tries;
> The number of tries the resolver will try contacting each name server
> before giving up. The default is four tries. 
> 
> 
> We originally set it to zero because the above entry used to read "the
> number of retries", not tries.So zero retries was supposed to mean one
> try per server.
> 
> Can you verify in the c-ares code that this isn't a behavior that
> CHANGED between versions (and thus we might need to detect the version
> in use and handle it?)
> 

The code in question in c-ares is called only when a search fails and
reads (simplified):

-------
while (++try < (nservers * tries)) {
  /* Get next server */
  /* Send the query again */
}

/* Mark query as failed */
-------

Since we had tries=0, we skipped the failover part and immediately
marked the query as failed.

The code is the same in c-ares 1.6 (RHEL5) and 1.7 (RHEL6 and supported
Fedora versions).

        Jakub

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to