Thanks Rich,

I will mull over this and play around with glibc a bit more to see if I can come up with something that gives us that ideal middle ground, I do agree with your initial idea though it sounds like it could behave a little bit closer to glibc but I will dig more and see.



Stefan

On Sat, Apr 22, 2017 at 3:32 PM Rich Felker <dalias@libc.org> wrote:
On Tue, Apr 04, 2017 at 02:08:08AM +0000, Stefan Sedich wrote:
> One thing I have found though is that the way the retry logic works if I
> want to retry ever 1 second for a total of 5 times I need to set it to
> 'options timeout:5 attempts:5', not sure if someone who knows this area
> well can comment but it appears to create a retry_interval based on
> timeout/attempts, which as far as I understand it is different to how it
> works with glibc where I can set timeout:1 attempts:5 and it does as I
> expect.

The man page documents timeout as "amount of time the resolver will
wait for a response from a remote name server before retrying the
query via a different name server". Since musl does not cycle through
servers, but tries them all concurrently, this definition does not
make sense, so we have to find a reasonable way to interpret the
options, but I agree it might be "wrong" right now. It might be that,
rather than retry_interval being timeout/attempts, retry_interval
should be timeout, and the total timeout should be timeout*attempts.
We really should look at the glibc behavior and see how it scales with
different settings and numbers of nameservers and try to make the
behavior somehow comparable.

BTW sorry I missed your V2.

Rich