<div dir="ltr"><span style="font-size:12.8px">I agree with Hal for his reasons and another. </span><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">If this is the worker threads, then we should wait for Chris to </span><span style="font-size:12.8px">comment. <br>He has a simpler replacement in the queue and just needs to debug</span><div style="font-size:12.8px">it AFAIK.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Plus this could be a feature plus over Classic. </div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 1, 2015 at 2:45 PM, Hal Murray <span dir="ltr"><<a href="mailto:hmurray@megapathdsl.net" target="_blank">hmurray@megapathdsl.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<a href="mailto:esr@snark.thyrsus.com">esr@snark.thyrsus.com</a> said:<br>
> Is asychronous DNS lookup worth keeping at all?  It's costly in code<br>
> complexity and dependencies.  I've been thinking about how it affects<br>
> performance and I'm now doubting that it is effective  in modern conditions.<br>
<br>
</span>I think that is premature.<br>
<br>
I can't put my finger on a good example, but the use-case space is huge.  I<br>
think there is too high a chance that we haven't considered an important case<br>
yet.<br>
<br>
There is a lot of interest in getting servers restarted quickly.  Telling all<br>
those users they can't use any non-local server names seems unwise.<br>
<br>
I'd like to be able to do things like have the pool code occasionally verify<br>
that the servers it is using are still in the pool.  The idea is to help<br>
people remove their servers from the pool.  (The pool DNS side doesn't<br>
support that check yet.)<br>
<br>
I think the code complexity will improve a lot when Joel rewrites that area.<br>
The wart that may not be obvious is the interaction with locking everything<br>
into memory.  In some environments, the end-of-thread code loads another<br>
library module which may not fit.<br>
<br>
How evil are the dependencies?  How many environments don't have pthreads?<br>
<br>
I'd be happy to do the DNS lookups from the main thread if the environment<br>
doesn't support pthreads.  Or at least do it that way until we discover an<br>
interesting use case.<br>
<span class=""><br>
<br>
> Nowadays, 99.9% of all NTP installations are configured to do a single pool<br>
</span>> name lookup.  ...<br>
<br>
That's incorrect on two counts.<br>
<br>
Most installations should be using the pool mechanism, but the distros aren't<br>
shipping that yet.  They are shipping an old version of ntp classic (with<br>
locally applied security fixes) where the pool code didn't quite work.  They<br>
use the pool via server directives in ntp.conf.  You see things like:<br>
  server <a href="http://0.fedora.pool.ntp.org" rel="noreferrer" target="_blank">0.fedora.pool.ntp.org</a> iburst<br>
  server <a href="http://1.fedora.pool.ntp.org" rel="noreferrer" target="_blank">1.fedora.pool.ntp.org</a> iburst<br>
  server <a href="http://2.fedora.pool.ntp.org" rel="noreferrer" target="_blank">2.fedora.pool.ntp.org</a> iburst<br>
  server <a href="http://3.fedora.pool.ntp.org" rel="noreferrer" target="_blank">3.fedora.pool.ntp.org</a> iburst<br>
<br>
The pool code is likely to do more than one DNS lookup.  It may take more<br>
than one DNS lookup (with a TTL timeout in between) to get enough servers.<br>
After startup, if a server stops responding, the pool code drops it and uses<br>
DNS to find a replacement.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
These are my opinions.  I hate spam.<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@ntpsec.org">devel@ntpsec.org</a><br>
<a href="http://lists.ntpsec.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ntpsec.org/mailman/listinfo/devel</a><br>
</div></div></blockquote></div><br></div>