<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Hello,<div><br></div><div>I am trying to troubleshoot a problem as an end-user of c-ares. I use a library (<a href="https://spark.apache.org/docs/latest/spark-connect-overview.html">Apache Spark Connect</a>) that uses gRPC, which in turn uses c-ares. I am two levels removed from c-ares itself and am a little out of my depth.</div><div><br></div><div>I have a little Python script that connects to a remote Apache Spark cluster via Spark Connect and runs a test query. When I run this script on my home network, it takes over 20 seconds to run. When I tether my workstation to my phone (which is connected via LTE), the same script runs in a second or two. In both cases the script runs successfully.</div><div><br></div><div>I enabled some gRPC debug flags which print out a lot of information. This led me to c-ares, as I believe the difference in runtime is related somehow to DNS.</div><div><br></div><div>I’ve extracted the <a href="https://gist.github.com/nchammas/a4c9873d8158c323796e9b47c064e63a">log lines output by gRPC related to c-ares</a>. (Be sure to scroll down to see both files; there is one for home and one for LTE.) The gRPC codebase is hosted on GitHub, where you can find the <a href="https://github.com/grpc/grpc/blob/v1.60.0/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc">grpc_ares_wrapper.cc</a> file mentioned in the log files.</div><div><br></div><div>I tried changing the DNS servers configured in my home router but that didn’t seem to help. Interestingly, however, if I set the same DNS servers already configured in my home router directly on the network interface I’m using, the 20 second delay disappears:</div><div><br></div><div>```</div><div><div>networksetup -setdnsservers “My Network" 1.1.1.1 1.0.0.1</div></div><div>```</div><div><br></div><div>But this setting doesn’t persist across restarts, and only Spark Connect seems to have this problem. It seems there is some kind of bad interaction between c-ares and my router.</div><div><br></div><div>How can I dig deeper to understand what’s going wrong with my home network? I checked the <a href="https://c-ares.org/docs.html">c-ares docs</a> but I don’t see a way for an end-user to enable debug output from c-ares, e.g. via an environment variable.</div><div><br></div><div>Any suggestions? I’m running macOS 14.2.1. The router is an Apple AirPort.</div><div><br></div><div>Nick</div><div><br></div></div></body></html>