[Dnsmasq-discuss] dnsmasq stuck at reading socket

Simon Kelley simon at thekelleys.org.uk
Tue Oct 19 14:52:58 UTC 2021


On 16/10/2021 21:31, Juhyung Park wrote:
> Wow, that's one hell of a dumb mistake.
> Thanks a lot!
> 
> Would have pulled a lot of hair out if I were to keep debugging this alone..
> 
> Sorry for the false alarm.

You're not the first, hence the warning in the man page. In an ideal
world the option would be called something different, but, you know,
history.


Simon.


> 
> On Sun, Oct 17, 2021 at 5:29 AM Simon Kelley <simon at thekelleys.org.uk> wrote:
>>
>>
>>
>> On 16/10/2021 21:18, Juhyung Park wrote:
>>> On Sun, Oct 17, 2021 at 5:06 AM Simon Kelley <simon at thekelleys.org.uk> wrote:
>>>>
>>>> Are you running dnsmasq in debug mode?
>>>>
>>>
>>> Nope, the only argument passed to dnsmasq executable is --no-daemon.
>>> The rest is set up via /etc/dnsmasq.conf, which is provided in the
>>> earlier email.
>>>
>>
>>    -d, --no-daemon
>>        Debug mode: don't fork to the  background,  don't  write  a  pid
>>        file,  don't  change  user id, generate a complete cache dump on
>>        receipt on SIGUSR1, log to stderr as well as syslog, don't  fork
>>        new  processes  to  handle TCP queries. Note that this option is
>>        for use in debugging only, to stop dnsmasq daemonising  in  pro‐
>>        duction, use --keep-in-foreground.
>>
>>
>> So is something opens a TCP connection to dnsmasq then fails to close it
>> again, exactly the behaviour you're seeing is expected. The last
>> sentence tells you what to do instead.
>>
>>
>> Cheers,
>>
>> Simon.
>>
>>
>>
>>> Thanks.
>>>
>>>> Simon.
>>>>
>>>>
>>>> On 16/10/2021 15:17, Juhyung Park wrote:
>>>>> Hi.
>>>>>
>>>>> I'm trying to debug an issue with dnsmasq that gets completely
>>>>> unresponsive after a few days of uptime.
>>>>>
>>>>> We have dnsmasq setup to serve as a DHCP server to local, wired
>>>>> network (192.168.10.0/24) and as a DNS resolver to local and WireGuard
>>>>> VPN network (192.168.240.0/24).
>>>>>
>>>>> After the dnsmasq daemon runs for a few days, it gets completely
>>>>> unresponsive. DHCP isn't renewed, DNS resolver doesn't work, etc.
>>>>>
>>>>> Using strace, I'm able to see that it's blocked from reading a socket:
>>>>> # strace -f -p 342291
>>>>> strace: Process 342291 attached
>>>>> read(13, ^Cstrace: Process 342291 detached
>>>>>  <detached ...>
>>>>>
>>>>> dnsmasq.conf:
>>>>> bogus-priv
>>>>> cache-size=5000
>>>>> domain-needed
>>>>> no-negcache
>>>>> no-resolv
>>>>> no-poll
>>>>> no-hosts
>>>>> log-facility=/dev/kmsg
>>>>>
>>>>> # DHCP
>>>>> dhcp-range=192.168.10.2,192.168.10.254,255.255.255.0
>>>>> dhcp-no-override
>>>>> dhcp-authoritative
>>>>> dhcp-lease-max=253
>>>>> dhcp-option=6,192.168.10.1
>>>>>
>>>>> server=164.124.101.2
>>>>>
>>>>> /proc/?/fd:
>>>>> /proc/342291/fd# ll
>>>>> total 0
>>>>> dr-x------ 2 root root  0 Oct 16 22:30 ./
>>>>> dr-xr-xr-x 9 root root  0 Oct 16 18:53 ../
>>>>> lr-x------ 1 root root 64 Oct 16 22:30 0 -> 'pipe:[3988]'
>>>>> l-wx------ 1 root root 64 Oct 16 22:30 1 -> /dev/null
>>>>> lr-x------ 1 root root 64 Oct 16 22:30 10 -> 'pipe:[526396]'
>>>>> l-wx------ 1 root root 64 Oct 16 22:30 11 -> 'pipe:[526396]'
>>>>> l-wx------ 1 root root 64 Oct 16 22:30 12 -> /dev/kmsg
>>>>> lrwx------ 1 root root 64 Oct 16 22:30 13 -> 'socket:[2740642]'
>>>>> l-wx------ 1 root root 64 Oct 16 22:30 2 -> /dev/null
>>>>> lrwx------ 1 root root 64 Oct 16 22:30 3 -> /var/lib/misc/dnsmasq.leases
>>>>> lrwx------ 1 root root 64 Oct 16 22:30 4 -> 'socket:[526385]'
>>>>> lrwx------ 1 root root 64 Oct 16 22:30 5 -> 'socket:[526386]'
>>>>> lrwx------ 1 root root 64 Oct 16 22:30 6 -> 'socket:[526388]'
>>>>> lrwx------ 1 root root 64 Oct 16 22:30 7 -> 'socket:[526389]'
>>>>> lrwx------ 1 root root 64 Oct 16 22:30 8 -> 'socket:[526390]'
>>>>> lrwx------ 1 root root 64 Oct 16 22:30 9 -> 'socket:[526391]'
>>>>>
>>>>> lsof:
>>>>> # lsof -i -a -p 342291
>>>>> COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
>>>>> dnsmasq 342291 root    4u  IPv4  526385      0t0  UDP *:bootps
>>>>> dnsmasq 342291 root    6u  IPv4  526388      0t0  UDP *:domain
>>>>> dnsmasq 342291 root    7u  IPv4  526389      0t0  TCP *:domain (LISTEN)
>>>>> dnsmasq 342291 root    8u  IPv6  526390      0t0  UDP *:domain
>>>>> dnsmasq 342291 root    9u  IPv6  526391      0t0  TCP *:domain (LISTEN)
>>>>> dnsmasq 342291 root   13u  IPv4 2740642      0t0  TCP
>>>>> 192.168.240.1:domain->192.168.240.103:63169 (ESTABLISHED)
>>>>>
>>>>> It seems that a WireGuard client DNS socket (fd 13) is forever
>>>>> blocked. Since I'm not sure as to whether this is WireGuard's or
>>>>> dnsmasq's issue, I figured I'd try contacting dnsmasq mailing list
>>>>> first.
>>>>>
>>>>> dnsmasq is version 2.85, but we've tried older versions as well.
>>>>>
>>>>> Any suggestions?
>>>>>
>>>>> Thanks.
>>>>>
>>>>> _______________________________________________
>>>>> Dnsmasq-discuss mailing list
>>>>> Dnsmasq-discuss at lists.thekelleys.org.uk
>>>>> https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss
>>>>>
>>>>
>>>> _______________________________________________
>>>> Dnsmasq-discuss mailing list
>>>> Dnsmasq-discuss at lists.thekelleys.org.uk
>>>> https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss
>>>
> 




More information about the Dnsmasq-discuss mailing list