Comment 2 for bug 1995260

Revision history for this message
Maximilian Stinsky (mstinsky) wrote :

Details on how to reproduce this are:
Install dnsmasq on ubuntu focal.

Start dnsmasq with for example: dnsmasq --server 8.8.8.8
Try to resolve hosts that are known to not exist on the authoritative name server that is used with 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

Expected is that all tests are returning NXDOMAIN but they dont because of the bug.

Same test on a ubuntu jammy installation with dnsmasq 2.86:
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)

The real world problem where we found this was with the autopath plugin from coredns in kubernetes. Because dnsmasq in version 2.80 sometimes returns NODATA the search path of autopath gets interrupted and the name resolution for normally working records fails.