** Merge proposal linked: https://code.launchpad.net/~mirespace/ubuntu/+source/dnsmasq/+git/dnsmasq/+merge/433106
-- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to dnsmasq in Ubuntu. https://bugs.launchpad.net/bugs/1995260 Title: dnsmasq focal 2.80 NODATA instead of NXDOMAIN bug Status in dnsmasq package in Ubuntu: Fix Released Status in dnsmasq source package in Focal: In Progress Bug description: [SRU] [ Impact ] Sometimes dnsmasq is incorrectly converting NXDOMAIN responses from authoritative dns servers into NODATA. This prevents the name resolution for normally working records fails in third party plugins/applications, as autopath (coredns). [ Test Plan ] In a focal VM, before disabling systemd-resolved (https://askubuntu.com/questions/907246/how-to-disable-systemd- resolved-in-ubuntu), install dnsmasq (apt install dnsmasq-base) if it wasn't installed yet. #0 Enabling and checking name resolution through dnsmasq root@F-dnsmasq:~# sudo lsof -i -P -n | grep LISTEN sudo: unable to resolve host F-dnsmasq: Temporary failure in name resolution sshd 221 root 3u IPv4 120681 0t0 TCP *:22 (LISTEN) sshd 221 root 4u IPv6 120692 0t0 TCP *:22 (LISTEN) root@F-dnsmasq:~# dnsmasq --server 8.8.8.8 root@F-dnsmasq:~# sudo lsof -i -P -n | grep LISTEN sudo: unable to resolve host F-dnsmasq: Name or service not known sshd 221 root 3u IPv4 120681 0t0 TCP *:22 (LISTEN) sshd 221 root 4u IPv6 120692 0t0 TCP *:22 (LISTEN) dnsmasq 1485 nobody 5u IPv4 183531 0t0 TCP *:53 (LISTEN) dnsmasq 1485 nobody 7u IPv6 183533 0t0 TCP *:53 (LISTEN) root@F-dnsmasq:~# ping www.google.com PING [www.google.com](http://www.google.com/) (142.250.200.68) 56(84) bytes of data. 64 bytes from [mad07s24-in-f4.1e100.net](http://mad07s24-in-f4.1e100.net/) (142.250.200.68): icmp_seq=1 ttl=114 time=16.5 ms 64 bytes from [mad07s24-in-f4.1e100.net](http://mad07s24-in-f4.1e100.net/) (142.250.200.68): icmp_seq=2 ttl=114 time=19.4 ms ^C --- [www.google.com](http://www.google.com/) ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 16.468/17.927/19.387/1.459 ms #1 Bad case root@F-dnsmasq:~# for i in srv txt aaaa a aaaa a txt srv; do host -t $i test.foo. 127.0.0.1 | tail -n 1; done Host test.foo. not found: 3(NXDOMAIN) Host test.foo. not found: 3(NXDOMAIN) Host test.foo. not found: 3(NXDOMAIN) test.foo has no A record Host test.foo. not found: 3(NXDOMAIN) test.foo has no A record test.foo has no TXT record test.foo has no SRV record #2 Good case #2.1 Installing new package root@F-dnsmasq:~# l *.deb dnsmasq-utils_2.80-1.1ubuntu1.6_amd64.deb dnsmasq-base_2.80-1.1ubuntu1.6_amd64.deb dnsmasq_2.80-1.1ubuntu1.6_all.deb root@F-dnsmasq:~# dpkg -i *.deb (Reading database ... 32079 files and directories currently installed.) Preparing to unpack dnsmasq-base_2.80-1.1ubuntu1.6_amd64.deb ... Unpacking dnsmasq-base (2.80-1.1ubuntu1.6) over (2.80-1.1ubuntu1.5) ... Selecting previously unselected package dnsmasq-utils. Preparing to unpack dnsmasq-utils_2.80-1.1ubuntu1.6_amd64.deb ... Unpacking dnsmasq-utils (2.80-1.1ubuntu1.6) ... Preparing to unpack dnsmasq_2.80-1.1ubuntu1.6_all.deb ... Unpacking dnsmasq (2.80-1.1ubuntu1.6) over (2.80-1.1ubuntu1.5) ... Setting up dnsmasq-base (2.80-1.1ubuntu1.6) ... Setting up dnsmasq-utils (2.80-1.1ubuntu1.6) ... Setting up dnsmasq (2.80-1.1ubuntu1.6) ... Job for dnsmasq.service failed because the control process exited with error code. See "systemctl status dnsmasq.service" and "journalctl -xe" for details. invoke-rc.d: initscript dnsmasq, action "start" failed. ● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Tue 2022-11-15 11:42:49 UTC; 8ms ago Process: 1641 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS) Process: 1642 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=2) Nov 15 11:42:49 F-dnsmasq systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server... Nov 15 11:42:49 F-dnsmasq dnsmasq[1641]: dnsmasq: syntax check OK. Nov 15 11:42:49 F-dnsmasq dnsmasq[1642]: dnsmasq: failed to create listening socket for port 53: Address already in use Nov 15 11:42:49 F-dnsmasq dnsmasq[1642]: failed to create listening socket for port 53: Address already in use Nov 15 11:42:49 F-dnsmasq dnsmasq[1642]: FAILED to start up Nov 15 11:42:49 F-dnsmasq systemd[1]: dnsmasq.service: Control process exited, code=exited, status=2/INVALIDARGUMENT Nov 15 11:42:49 F-dnsmasq systemd[1]: dnsmasq.service: Failed with result 'exit-code'. Nov 15 11:42:49 F-dnsmasq systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server. Processing triggers for dbus (1.12.16-2ubuntu2.3) ... Processing triggers for man-db (2.9.1-1) ... Processing triggers for systemd (245.4-4ubuntu3.18) ... Errors were encountered while processing: dnsmasq-base-lua_2.80-1.1ubuntu1.6_amd64.deb root@F-dnsmasq:~# dpkg -l | grep dnsmasq ii dnsmasq 2.80-1.1ubuntu1.6 all Small caching DNS proxy and DHCP/TFTP server ii dnsmasq-base 2.80-1.1ubuntu1.6 amd64 Small caching DNS proxy and DHCP/TFTP server ii dnsmasq-utils 2.80-1.1ubuntu1.6 amd64 Utilities for manipulating DHCP leases #2.2 Testing OK (after killing previous dnsmasq) root@F-dnsmasq:~# for i in srv txt aaaa a aaaa a txt srv; do host -t $i test.foo. 127.0.0.1 | tail -n 1; done test.foo has no SRV record test.foo has no TXT record Host test.foo. not found: 3(NXDOMAIN) test.foo has no A record Host test.foo. not found: 3(NXDOMAIN) test.foo has no A record test.foo has no TXT record test.foo has no SRV record root@F-dnsmasq:~# ps -ef | grep dnsmasq nobody 1485 1 0 11:33 ? 00:00:00 dnsmasq --server 8.8.8.8 root 1863 390 0 11:44 pts/1 00:00:00 grep --color=auto dnsmasq root@F-dnsmasq:~# pkill dnsmasq root@F-dnsmasq:~# dnsmasq --server 8.8.8.8 root@F-dnsmasq:~# for i in srv txt aaaa a aaaa a txt srv; do host -t $i test.foo. 127.0.0.1 | tail -n 1; done Host test.foo. not found: 3(NXDOMAIN) Host test.foo. not found: 3(NXDOMAIN) Host test.foo. not found: 3(NXDOMAIN) Host test.foo. not found: 3(NXDOMAIN) Host test.foo. not found: 3(NXDOMAIN) Host test.foo. not found: 3(NXDOMAIN) Host test.foo. not found: 3(NXDOMAIN) Host test.foo. not found: 3(NXDOMAIN) [ Where problems could occur ] It correctly changes the program's behaviour in this kind of situation, so users that didn't recognize this as an error can see an increment in their dns cached records, so, in the end, it's not a problem. [ Other Info ] The patch is applied upstream and originated from a bug filed on Fedora side: https://bugzilla.redhat.com/show_bug.cgi?id=1674067 [Original Report] --------------------------------------------------- We upgraded our openstack containers which host dnsmasq services from bionic to focal. With this we got an update of dnsmasq from 2.79 to 2.80 which introduced a bug in our setup where dnsmasq returns NODATA instead of NXDOMAIN. This is already fixed upstream with the following commit [1]. The Ubuntu dnsmasq 2.80 package should get a backport with a release for the focal packages which includes this bug fix. [1] https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=162e5e0062ce923c494cc64282f293f0ed64fc10 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/dnsmasq/+bug/1995260/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp