cURL / Mailing Lists / curl-library / Single Mail


Re: best practices: c-ares vs threaded resolver

From: Daniel Stenberg <>
Date: Tue, 17 Sep 2013 22:46:25 +0200 (CEST)

On Mon, 16 Sep 2013, m brandenberg wrote:

> * General unreliability on platforms with DNS timeouts on all
> three platforms.

This sounds like a bug, in either c-ares or libcurl.

> * OS X is having trouble keeping /etc/resolv.conf valid. Either
> the symlink is damaged or the target (/var/run/resolv.conf)
> isn't being regenerated reliably on network reconfigurations.
> Result is a broken server list in c-ares.

This sounds like a broken OS X or that c-ares needs to get its list of servers

> * Magical failures.

More c-ares bugs?

> But looking at the implementation of the threaded resolver makes me ask a
> few questions. It's a thread-per-request scheme. Good for avoiding a stall
> behind a request that will timeout or be answered slowly. But this makes
> unbounded demands on thread count.

Yes. Of course that could be modified/improved but it would also make things
more complicated and you'd also get problems with one slow resolve hogging the
other subsequent resolves if you just use a queue in a single resolver thread.

> The c-ares we're using *is* old, 1.7.1, and that will get bumped up but
> maybe it's time to change.

Some of your problems may have been fixed since that version. Development may
be slow in c-ares but there are like 8 releases done since that version.

> Has anyone else given both schemes a real-world test in a million-seat
> application?

Not me anyway.

List admin:
Received on 2013-09-17