dns: kill plugin child synchronously to avoid restart race (rh #1161232) (bgo #728342)

System Internals / NetworkManager - Dan Williams [redhat.com] - 27 March 2015 16:17 UTC

NM was killing the dnsmasq local caching nameserver process and immediately starting a new one, and new process couldn't bind to 127.0.0.1 because the old one hadn't quit yet. Thus the new process quit, and the user was left with no split DNS at all.

While this does introduce more synchronous waiting into the connection process, it's not that much time and NM will kill dnsmasq if it hasn't quit after 1 second. The longer-term fix is to use dnsmasq's D-Bus interface to update DNS without respawning it.

https://bugzilla.gnome.org/show_bug.cgi?id=728342 https://bugzilla.redhat.com/show_bug.cgi?id=1161232

452c224 dns: kill plugin child synchronously to avoid restart race (rh #1161232) (bgo #728342)
src/dns-manager/nm-dns-plugin.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

Upstream: cgit.freedesktop.org


  • Share