On Tue, Oct 19, 2021 at 01:13:46PM -0400, Eloy Paris wrote: > I am seeing the new issue happen very often -- the machine goes to sleep > and when it comes back it seems like dnsmasq does not have upstream > servers to forward requests to, so the virtual machine that relies on > dnsmasq for DNS resolution cannot resolve anything.
I've done some troubleshooting of this and my /etc/resolv.conf seems stable when the machine comes back from sleep and dnsmasq reads it. However, for some reason the servers there don't seem to be added to the daemon->servers linked list. dnsmasq.c:poll_resolv() has: ---------------------------------------------------------------------- if (latest) { static int warned = 0; if (reload_servers(latest->name)) { my_syslog(LOG_INFO, _("reading %s"), latest->name); warned = 0; check_servers(0); ---------------------------------------------------------------------- I instrumented check_servers(), as that is what logs "using nameserver xyz", and my syslog has this in the working case (before I put the machine to sleep): Oct 20 05:16:32 chapilu dnsmasq[167055]: /etc/resolv.conf: search example.com Oct 20 05:16:32 chapilu dnsmasq[167055]: /etc/resolv.conf: nameserver 1.2.3.4 Oct 20 05:16:32 chapilu dnsmasq[167055]: /etc/resolv.conf: nameserver 1.2.3.5 Oct 20 05:16:32 chapilu dnsmasq[167055]: /etc/resolv.conf: nameserver 1.2.3.6 Oct 20 05:16:32 chapilu dnsmasq[167055]: reading /etc/resolv.conf Oct 20 05:16:32 chapilu dnsmasq[167055]: check_servers(): Server #1: domain = , interface = Oct 20 05:16:32 chapilu dnsmasq[167055]: using nameserver 1.2.3.4#53 Oct 20 05:16:32 chapilu dnsmasq[167055]: check_servers(): Server #2: domain = , interface = Oct 20 05:16:32 chapilu dnsmasq[167055]: using nameserver 1.2.3.5#53 Oct 20 05:16:32 chapilu dnsmasq[167055]: check_servers(): Server #3: domain = , interface = Oct 20 05:16:32 chapilu dnsmasq[167055]: using nameserver 1.2.3.6#53 Oct 20 05:16:32 chapilu dnsmasq[167055]: check_servers(): 3 servers in daemon->servers Oct 20 05:16:32 chapilu dnsmasq[167055]: check_servers(): 0 servers in daemon->local_domains (Doing "touch /etc/resolv.conf" when things are working [before I put the machine to sleep], produces the above as well.) However, when I put the machine to sleep, and later resume, I get this: Oct 20 05:17:26 chapilu dnsmasq[167055]: /etc/resolv.conf: # Generated by NetworkManager Oct 20 05:17:26 chapilu dnsmasq[167055]: /etc/resolv.conf: search example.com Oct 20 05:17:26 chapilu dnsmasq[167055]: /etc/resolv.conf: nameserver 1.2.3.4 Oct 20 05:17:26 chapilu dnsmasq[167055]: /etc/resolv.conf: nameserver 1.2.3.5 Oct 20 05:17:26 chapilu dnsmasq[167055]: /etc/resolv.conf: nameserver 1.2.3.6 Oct 20 05:17:26 chapilu dnsmasq[167055]: reading /etc/resolv.conf Oct 20 05:17:26 chapilu dnsmasq[167055]: check_servers(): 0 servers in daemon->servers Oct 20 05:17:26 chapilu dnsmasq[167055]: check_servers(): 0 servers in daemon->local_domains So it seems like after the resume from sleep, /etc/resolv.conf is stable, has the correct upstream DNS servers, but somehow daemon->servers ends up with nothing; what could cause this? Cheers, Eloy Paris.- _______________________________________________ Dnsmasq-discuss mailing list Dnsmasq-discuss@lists.thekelleys.org.uk https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss