[Dnsmasq-discuss] Potential memory leak
Niten Jaiswal
niten at jaiswal.net
Thu Jan 29 11:37:55 UTC 2026
Hi Simon,
I have data showing the increase in memory consumption. How should I send it to you?
Niten
From: Dnsmasq-discuss <dnsmasq-discuss-bounces at lists.thekelleys.org.uk> on behalf of Niten Jaiswal via Dnsmasq-discuss <dnsmasq-discuss at lists.thekelleys.org.uk>
Date: Wednesday, January 28, 2026 at 6:13 PM
To: Simon Kelley <simon at thekelleys.org.uk>, dnsmasq-discuss at lists.thekelleys.org.uk <dnsmasq-discuss at lists.thekelleys.org.uk>
Subject: Re: [Dnsmasq-discuss] Potential memory leak
Hi Simon,
I’ve started monitoring. Logging is enabled and I’m using the following command to capture memory usage.
sh -c 'while true; do echo `date`; ps -p `cat /var/run/dnsmasq.pid` -o pid,pcpu,rss,vsz,comm; sleep 1; done' >> dns_mem_usage.out
Niten
From: Dnsmasq-discuss <dnsmasq-discuss-bounces at lists.thekelleys.org.uk> on behalf of Niten Jaiswal via Dnsmasq-discuss <dnsmasq-discuss at lists.thekelleys.org.uk>
Date: Wednesday, January 28, 2026 at 2:48 PM
To: Simon Kelley <simon at thekelleys.org.uk>, dnsmasq-discuss at lists.thekelleys.org.uk <dnsmasq-discuss at lists.thekelleys.org.uk>
Subject: Re: [Dnsmasq-discuss] Potential memory leak
HI Simon,
I’m not sure if I can run your version on opnsense. The opnsense team gave me a patch to install that will remove the quiet options and have shown me how to enable the logging you requested. I will turn everything on later today.
From: Simon Kelley <simon at thekelleys.org.uk>
Date: Wednesday, January 28, 2026 at 11:17 AM
To: Niten Jaiswal <niten at jaiswal.net>, dnsmasq-discuss at lists.thekelleys.org.uk <dnsmasq-discuss at lists.thekelleys.org.uk>
Subject: Re: [Dnsmasq-discuss] Potential memory leak
I've just pushed some changes to the git repo, whichinclude a new option
called --log-malloc. If you can run that code, and enable log-malloc and
save the log file, that might be interesting. There will be a reasonable
amount of activity after startup, but once the various tables reach
equilibrium size, it should be pretty quiet. If it's not, or there are
some very large allocations, that could give us a clue.
This has been quite useful: I found a few non-optimal behaviours, which
I've fixed, but nothing that actually leaks memory.
Cheers,
Simon.
On 23.01.2026 18:41, Niten Jaiswal wrote:
> HI Simon,
> I don’t believe opnsense forces a re-read of the configuration file on a
> regular basis. The network interfaces do not regularly change. They
> have been static since I replaced the network interfaces a few years ago.
>
> I’m going to ask the opnsense team how I can adjust the configuration to
> add more logging. Will reply when I’m ready.
>
>
>
> *From: *Simon Kelley <simon at thekelleys.org.uk>
> *Date: *Friday, January 23, 2026 at 8:19 AM
> *To: *Niten Jaiswal <niten at jaiswal.net>, dnsmasq-
> discuss at lists.thekelleys.org.uk <dnsmasq-discuss at lists.thekelleys.org.uk>
> *Subject: *Re: [Dnsmasq-discuss] Potential memory leak
>
> This behaviour is not generally seen, so there has to be something about
> Opensense installation which is unusual. That could be the FreeBSD
> kernel and/or libraries, or it could be something in the dnsmasq
> configuration.
>
> I just looked through the 2.92 changelog and the only memory leak that
> has been fixed since 2.91 is in the inotify code, which isn't included
> on FreebSD in 2.91.
>
> I've just spent a while staring at the dnsmasq code that's unique to
> *BSD, and it's pretty difficult to see a memory leak there. It most
> doesn't allocate memory and where it does the code paths for free it
> again are straightforward.
>
> As far as configuration is concerned, there are few thinks to suspect
> a-priori.
>
> Does the Opensense setup prod dnsmasq to re-read it's configuration
> files regularly? That code has historically memory-leak prone.
>
> Does the network interface change often? Creating and deleting
> interfaces/addresses/routes etc. If dnsmasq is running its routines to
> adapt to such changes often, that might expose a memory leak. Are you
> running --bind-interfaces or --bind-dynamic?
>
> Since I can't really reproduce this here, and you can see it at will: it
> would be useful for you to get me as much information as you can. I'll
> certainly need complete dnsmasq logs: set
>
> log-queries=extra
> log-dhcp
> log-facility=/path/to/file
>
> in the config
>
> and remove the quiet-* options that are there now.
>
> If you can, and have enough file storage, a log file which logs the RSS
> of the dnsmasq process every second might be a great way to correlate
> stuff happening in the logs with RSS expansion.
>
>
> Cheers,
>
> Simon.
>
>
>
>
>
> On 22.01.2026 15:33, Niten Jaiswal wrote:
> > The configuration below has dnsmasq’s RA feature turned off. If I turn
> > off radvd and turn on dnsmasq’s RA feature the same behavior occurs.
> >
> > *From: *Dnsmasq-discuss <dnsmasq-discuss-
> > bounces at lists.thekelleys.org.uk> on behalf of Simon Kelley
> > <simon at thekelleys.org.uk>
> > *Date: *Thursday, January 22, 2026 at 10:30 AM
> > *To: *dnsmasq-discuss at lists.thekelleys.org.uk <dnsmasq-
> > discuss at lists.thekelleys.org.uk>
> > *Subject: *Re: [Dnsmasq-discuss] Potential memory leak
> >
> > From the mailing list:
> >
> > "Here's something interesting... it looks like there is a problem with
> > serving DHCPv6... so after turning on radvd memory consumption started
> > increasing substantially..."
> >
> > How does that alter the configuration below?
> >
> >
> > Simon.
> >
> > On 22.01.2026 14:05, Niten Jaiswal via Dnsmasq-discuss wrote:
> > > I’m running version 2.91_1.1 on opnsense version 25.7.10. Below is my
> > > configuration:
> > >
> > > OPNsense:~ # cat /usr/local/etc/dnsmasq.conf
> > >
> > > # DO NOT EDIT THIS FILE -- OPNsense auto-generated file
> > >
> > > #
> > >
> > >
> > > rebind-localhost-ok
> > >
> > > stop-dns-rebind
> > >
> > >
> > > port=5353
> > >
> > >
> > > # If you want dnsmasq to listen for DHCP and DNS requests only on
> > >
> > > # specified interfaces (and the loopback) give the name of the
> > >
> > > # interface (eg eth0) here.
> > >
> > > # Repeat the line for more than one interface.
> > >
> > > interface=ixl1
> > >
> > >
> > >
> > >
> > > dhcp-fqdn
> > >
> > > domain=375.jaiswal.net
> > >
> > > # This tells dnsmasq that a domain is local and it may answer queries
> > > from /etc/hosts
> > >
> > > # or DHCP but should never forward queries on that domain to any
> > > upstream servers.
> > >
> > > local=/375.jaiswal.net/
> > >
> > >
> > > dhcp-authoritative
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > log-dhcp
> > >
> > > quiet-dhcp
> > >
> > > quiet-dhcp6
> > >
> > > quiet-ra
> > >
> > > quiet-tftp
> > >
> > >
> > >
> > > # host entries flushed via dnsmasq_watcher.py [isc] and a dump of the
> > > static reservations
> > >
> > > addn-hosts=/var/etc/dnsmasq-hosts
> > >
> > > addn-hosts=/var/etc/dnsmasq-leases
> > >
> > >
> > > dns-forward-max=15000
> > >
> > > cache-size=10000
> > >
> > > local-ttl=1
> > >
> > >
> > > conf-dir=/usr/local/etc/dnsmasq.conf.d,*.conf
> > >
> > >
> > > dhcp-range=tag:ixl1,X.X.X.30,X.X.X.199,86400
> > >
> > >
> > > domain=375.jaiswal.net,X.X.X.30,X.X.X.199
> > >
> > > dhcp-range=tag:ixl1,::1000,::2000,constructor:ixl1,64,86400
> > >
> > >
> > > domain=X.X.X,::1000,::2000
> > >
> > >
> > > dhcp-host=d8:0d:17:41:af:2c,X.X.X.23,TL-SG108PE
> > >
> > > dhcp-host=68:1d:ef:18:b2:c6,X.X.X.29,camect-home-2fefa
> > >
> > > dhcp-host=dc:f5:05:18:4e:fb,X.X.X.34,mwmdemo-4EFB
> > >
> > > dhcp-host=1c:1d:d3:d8:23:e6,X.X.X.35,Nitens-Mac-Studio
> > >
> > > dhcp-host=a8:51:ab:02:3f:28,X.X.X.99,Guest_Room_AppleTV
> > >
> > > dhcp-host=00:1a:ae:00:40:4b,X.X.X.101
> > >
> > > dhcp-host=00:1a:ae:02:5f:16,X.X.X.113
> > >
> > > dhcp-host=88:c9:e8:bc:e9:50,X.X.X.116,Sony_A95K_FM
> > >
> > > dhcp-host=60:81:f9:ac:66:58,X.X.X.128,Helium-Hotspot
> > >
> > > dhcp-host=00:0c:d0:01:23:33,X.X.X.132
> > >
> > > dhcp-host=b8:2c:a0:5b:5d:14,X.X.X.142,android-a3369b84877d627a
> > >
> > > dhcp-host=80:a5:89:aa:42:67,X.X.X.152,mwmdemo-4267
> > >
> > > dhcp-host=90:56:82:98:56:c2,X.X.X.201,AmanBluesound
> > >
> > > dhcp-host=18:bb:26:e2:2f:43,X.X.X.202,RianBluesound
> > >
> > > dhcp-host=90:56:82:40:91:49,X.X.X.203,MasterBedroom
> > >
> > > dhcp-host=64:95:6c:0a:94:76,X.X.X.204,LG_Projector_MB
> > >
> > > dhcp-host=38:c9:86:14:8b:ae,X.X.X.205,10ddb198e7550000
> > >
> > > dhcp-host=20:f8:5e:4e:b5:d6,X.X.X.206,RianBedroomFan
> > >
> > > dhcp-host=20:f8:5e:4e:ac:37,X.X.X.207,AmanBedroomFan
> > >
> > > dhcp-host=20:f8:5e:35:e4:5c,X.X.X.208,MasterBedroomFa
> > >
> > > dhcp-host=20:f8:5e:4e:ce:5a,X.X.X.209,FamilyRoomFan
> > >
> > > dhcp-host=20:f8:5e:e4:44:ce,X.X.X.210,OfficeFan
> > >
> > > dhcp-host=00:11:d9:56:96:45,X.X.X.211,TIVO-A9200019027F13F
> > >
> > > dhcp-host=20:f8:5e:4e:ad:57,X.X.X.212,PlayRoomFan
> > >
> > > dhcp-host=00:1b:7c:09:81:9f,X.X.X.213,sdr35-589374
> > >
> > > dhcp-host=00:11:d9:8f:15:09,X.X.X.214,TIVO-849601190366E67
> > >
> > > dhcp-host=14:91:82:d8:4b:70,X.X.X.221,Wemo_soffit
> > >
> > > dhcp-host=00:1b:7c:09:81:b1,X.X.X.222,sdp55-58b1f0
> > >
> > > dhcp-host=d4:6a:91:0e:88:d2,X.X.X.223,Wattbox
> > >
> > > dhcp-host=ec:a9:07:10:7a:50,X.X.X.224,AppleTVvingRoom
> > >
> > > dhcp-host=4c:ab:4f:90:c6:47,X.X.X.225,AppleTVmilyRoom
> > >
> > > dhcp-host=c8:d0:83:ca:46:cc,X.X.X.226,MasterBAppleTV3
> > >
> > > dhcp-host=00:11:d9:96:e8:9a,X.X.X.227,TIVO-84900119048F1A6
> > >
> > > dhcp-host=id:00:01:00:01:2d:af:54:ce:b8:e6:0c:13:e7:1e,
> > > [::b9cc],m1_macbook_pro
> > >
> > > dhcp-host=id:00:04:bb:36:4d:56:f5:2c:9f:11:50:7a:32:82:60:23:dd:e1,
> > > [::bbc1],pi-hole
> > >
> > > dhcp-host=id:00:01:00:01:29:42:4e:a4:14:98:77:7b:27:6d,[::bbc2],mac-
> > > mini-server
> > >
> > > dhcp-host=id:00:01:00:01:2e:ea:7c:b5:00:1a:1e:04:13:98,
> > [::bbc3],aruba-master
> > >
> > > dhcp-host=id:00:01:00:01:2e:ea:7c:b5:00:1a:1e:04:13:98,[::bbc3],aruba-
> > > conductor
> > >
> > >
> > > dhcp-option=tag:ixl1,60,ArubaAP
> > >
> > > dhcp-option=tag:ixl1,43,X.X.X.2
> > >
> > > dhcp-option=tag:ixl1,66,X.X.X.10
> > >
> > > dhcp-option=tag:ixl1,150,X.X.X.10
> > >
> > > dhcp-option=42,X.X.X.1
> > >
> > > dhcp-option=tag:ixl1,6,X.X.X.4
> > >
> > > dhcp-option=tag:ixl1,option6:23,[::bbc1]
> > >
> > >
> > > # default dns mapped to this server (0.0.0.0)
> > >
> > > dhcp-option=6,0.0.0.0
> > >
> > >
> > >
> > > no-ident
> > >
> > >
> > >
> > > *From: *Dnsmasq-discuss <dnsmasq-discuss-
> > > bounces at lists.thekelleys.org.uk> on behalf of Niten Jaiswal via
> Dnsmasq-
> > > discuss <dnsmasq-discuss at lists.thekelleys.org.uk>
> > > *Date: *Tuesday, January 20, 2026 at 9:53 PM
> > > *To: *dnsmasq-discuss at lists.thekelleys.org.uk <dnsmasq-
> > > discuss at lists.thekelleys.org.uk>
> > > *Subject: *[Dnsmasq-discuss] Potential memory leak
> > >
> > > Hi!
> > > I’m a user of opnsense and have migrated to dnsmasq for DHCPv4 and v6
> > > services. However, dnsmasq randomly stops functioning and I need to
> > > manually restart it to restore DHCP services to my network. I’ve been
> > > troubleshooting the issue on the opnsense form on the following
> thread:
> > > https://forum.opnsense.org/index.php?topic=49552.30 <https://
> forum.opnsense.org/index.php?topic=49552.30> <https://
> > forum.opnsense.org/index.php?topic=49552.30> <https://
> > > forum.opnsense.org/index.php?topic=49552.30>
> > >
> > > My basic testing points to an issue with serving DHCPv6 addresses.
> When
> > > I have router advertisement set to unmanaged the memory consumption of
> > > dnsmasq was fairly stable. When router advertisement is set to
> managed
> > > then dnsmasq begins consuming more and more memory..
> > >
> > > Let me know if you need additional information. I was asked to
> post to
> > > the email list by an opnsense forum moderator.
> > >
> > > TIA
> > > Niten
> > >
> > > _______________________________________________
> > > Dnsmasq-discuss mailing list
> > > Dnsmasq-discuss at lists.thekelleys.org.uk
> > > https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-
> <https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq->
> > discuss <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 <https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/
> dnsmasq-discuss>
> > <https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-
> discuss <https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/
> dnsmasq-discuss>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/attachments/20260129/d21589f8/attachment-0001.htm>
More information about the Dnsmasq-discuss
mailing list