This looks like it might indeed be it! I'll apply it to our internal 1.8.0 packages and give it a shot. Thanks!
-Dustin On Jul 15, 2023 at 2:42 AM -0500, Otto Moerbeek <o...@drijf.net>, wrote: > On Fri, Jul 14, 2023 at 03:06:12PM -0500, Dustin Marquess via dnsdist wrote: > > > So far we've had instances with dnsdist 1.8.0 having a thread in a tight > > loop. OS versions seem to vary widely, so I don't believe it's a glibc bug. > > > > Config on both is the same plain config: > > > > setLocal("127.0.0.1:53", {reusePort=true}) > > addLocal("127.0.0.1:53", {reusePort=true}) > > addLocal("127.0.0.1:53", {reusePort=true}) > > addLocal("127.0.0.1:53", {reusePort=true}) > > addACL('10.0.0.0/8') > > newServer({address="10.112.104.116", checkType="A", checkClass=DNSClass.IN, > > checkName="hc.xxx.local", mustResolve=true, checkInterval=30}) > > newServer({address="10.112.106.177", checkType="A", checkClass=DNSClass.IN, > > checkName="hc.xxx.local", mustResolve=true, checkInterval=30}) > > newServer({address="10.9.41.68", checkType="A", checkClass=DNSClass.IN, > > checkName="hc.xxx.local", mustResolve=true, checkInterval=30}) > > setServerPolicy(firstAvailable) > > > > -- Tuning > > setRingBuffersSize(1000000, 100) > > setMaxTCPClientThreads(20) > > > > -- Caching > > -- We should make these tunables configurable > > pc = newPacketCache(100000, {maxTTL=86400, minTTL=0, > > temporaryFailureTTL=60, staleTTL=60, dontAge=false}) > > getPool(""):setCache(pc) > > > > -- Don't try and hit the internet > > setSecurityPollSuffix("") > > > > [pid 2990] recvfrom(-1, 0x7f3d9c0008c0, 4368, 0, NULL, NULL) = -1 EBADF > > (Bad file descriptor) > > [pid 2990] recvfrom(-1, 0x7f3d9c0008c0, 4368, 0, NULL, NULL) = -1 EBADF > > (Bad file descriptor) > > [pid 2990] recvfrom(-1, 0x7f3d9c0008c0, 4368, 0, NULL, NULL) = -1 EBADF > > (Bad file descriptor) > > [pid 2990] recvfrom(-1, 0x7f3d9c0008c0, 4368, 0, NULL, NULL) = -1 EBADF > > (Bad file descriptor) > > > > In each case, a strace shows a bad recvfrom() call in a tight loop: > > > > Obviously -1 is a bad fd! Restarting dnsdist seems to resolve it. The only > > idea I can come up with is that when dnsdist first starts, it's unable to > > contact the upstream DNS servers and that somehow causes the issue. When we > > restart it, it IS able to contact them, and so works fine. > > > > Any ideas? > > > > Thanks! > > -Dustin > > This is likely https://github.com/PowerDNS/pdns/pull/12726 > > ATM this is not marked for backporting to 1.8.x. Don't know if that is > an omission. > > -Otto
_______________________________________________ dnsdist mailing list dnsdist@mailman.powerdns.com https://mailman.powerdns.com/mailman/listinfo/dnsdist