[Dnsmasq-discuss] Infinite loop in match_netid_wild
Fina
fina at felinira.net
Sat Oct 11 22:47:14 UTC 2025
Hi,
I accidentally sent the message before adding a minimal config:
enable-tftp
tftp-root=/srv/tftp
log-dhcp
dhcp-range=set:proxy,192.168.2.0,proxy,255.255.255.0
pxe-service=X86PC,"ltsp.ipxe",ltsp/ltsp.ipxe
If anyone has any ideas on how to find out more about this, let me know.
Best Regards
Fina Wilke
Am 12.10.25 um 00:44 schrieb Fina:
> Hi,
>
> I am currently debugging an a hang in match_netid_wild. It looks like
> that with my specific configuration the linked list in 'pool' is circular.
>
> This reproducibly happens to me after successfully negotiating PXE once,
> and then resetting the client and doing it a second time.
>
> Minimal config:
>
>
> dnsmasq: started, version 2.91 cachesize 150
>
> dnsmasq: compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2
> DHCP DHCPv6 no-Lua TFTP conntrack ipset nftset auth DNSSEC loop-detect
> inotify dumpfile
> dnsmasq-dhcp: DHCP, proxy on subnet 192.168.2.0
> dnsmasq-tftp: TFTP root is /srv/tftp
> dnsmasq: using nameserver 192.168.2.10#53
> dnsmasq: using nameserver 192.168.100.1#53
> dnsmasq: read /etc/hosts - 8 names
> dnsmasq-dhcp: 1322097232 available DHCP subnet: 192.168.2.0/255.255.255.0
> dnsmasq-dhcp: 1322097232 vendor class: PXEClient:Arch:00000:UNDI:002001
> dnsmasq-dhcp: 1322097232 user class: iPXE
> dnsmasq-dhcp: 1322097232 PXE(vmbr0) 52:54:00:59:90:59 proxy
> dnsmasq-dhcp: 1322097232 tags: ipxe, proxy, X86PC, ipxe-http, ipxe-menu,
> ipxe-pxe, ipxe-bzimage, vmbr0
> dnsmasq-dhcp: 1322097232 bootfile name: ltsp/ltsp.ipxe
> dnsmasq-dhcp: 1322097232 broadcast response
> dnsmasq-dhcp: 1322097232 sent size: 1 option: 53 message-type 2
> dnsmasq-dhcp: 1322097232 sent size: 4 option: 54 server-identifier
> 192.168.2.20
> dnsmasq-dhcp: 1322097232 sent size: 9 option: 60 vendor-class
> 50:58:45:43:6c:69:65:6e:74
> dnsmasq-dhcp: 1322097232 sent size: 17 option: 97 client-machine-id
> 00:3d:94:7f:be:64:70:88:46:b5:3d:16:13:66...
> dnsmasq-dhcp: 1322097232 sent size: 33 option: 43 vendor-encap
> 06:01:03:0a:04:00:50:58:45:08:07:80:02:01...
> dnsmasq-dhcp: 1322097232 available DHCP subnet: 192.168.2.0/255.255.255.0
> dnsmasq-dhcp: 1322097232 vendor class: PXEClient:Arch:00000:UNDI:002001
> dnsmasq-dhcp: 1322097232 user class: iPXE
> dnsmasq-dhcp: 0 available DHCP subnet: 192.168.2.0/255.255.255.0
> dnsmasq-dhcp: 0 vendor class: PXEClient
> dnsmasq-dhcp: 0 user class: iPXE
> dnsmasq-dhcp: 0 PXE(vmbr0) 192.168.2.224 52:54:00:59:90:59 ltsp/ltsp.ipxe
> dnsmasq-dhcp: 0 tags: ipxe, X86PC, ipxe-http, ipxe-menu, ipxe-pxe, ipxe-
> bzimage, vmbr0
> dnsmasq-dhcp: 0 bootfile name: ltsp/ltsp.ipxe
> dnsmasq-dhcp: 0 next server: 192.168.2.20
> dnsmasq-dhcp: 0 broadcast response
> dnsmasq-dhcp: 0 sent size: 1 option: 53 message-type 5
> dnsmasq-dhcp: 0 sent size: 4 option: 54 server-identifier 192.168.2.20
> dnsmasq-dhcp: 0 sent size: 9 option: 60 vendor-class
> 50:58:45:43:6c:69:65:6e:74
> dnsmasq-dhcp: 0 sent size: 17 option: 97 client-machine-id
> 00:3d:94:7f:be:64:70:88:46:b5:3d:16:13:66...
> dnsmasq-dhcp: 0 sent size: 7 option: 43 vendor-encap 47:04:80:02:00:00:ff
> dnsmasq-tftp: sent /srv/tftp/ltsp/ltsp.ipxe to 192.168.2.224
>
> <client reset>
>
> dnsmasq-dhcp: 2407115012 available DHCP subnet: 192.168.2.0/255.255.255.0
> dnsmasq-dhcp: 2407115012 vendor class: PXEClient:Arch:00000:UNDI:002001
> dnsmasq-dhcp: 2407115012 user class: iPXE
>
> (gdb) p tmp1
> $2 = (struct dhcp_netid *) 0x5555555d2b10
> (gdb) p tmp1->next
> $3 = (struct dhcp_netid *) 0x5555555d2bb0
> (gdb) p tmp1->next->next
> $4 = (struct dhcp_netid *) 0x7fffffffde50
> (gdb) p tmp1->next->next->next
> $5 = (struct dhcp_netid *) 0x5555555d26d0
> (gdb) p tmp1->next->next->next->next
> $6 = (struct dhcp_netid *) 0x5555555d29d0
> (gdb) p tmp1->next->next->next->next->next
> $7 = (struct dhcp_netid *) 0x5555555d2a70
> (gdb) p tmp1->next->next->next->next->next->next
> $8 = (struct dhcp_netid *) 0x5555555d2b10
>
> (gdb) bt
> #0 match_netid_wild (check=0x5555555d2f90,
> pool=pool at entry=0x5555555d2cd0) at ./debian/auto-build/dnsmasq-base/
> dhcp-common.c:97
> #1 0x00005555555a0aad in run_tag_if (tags=0x5555555d2cd0,
> tags at entry=0x5555555d2680) at ./debian/auto-build/dnsmasq-base/dhcp-
> common.c:121
> #2 0x00005555555a0bed in option_filter (tags=tags at entry=0x5555555d26d0,
> context_tags=0x5555555d2680, opts=0x5555555d21e0, pxemode=pxemode at entry=2)
> at ./debian/auto-build/dnsmasq-base/dhcp-common.c:174
> #3 0x000055555558f485 in dhcp_reply (context=<optimized out>,
> iface_name=iface_name at entry=0x7fffffffe0a0 "vmbr0",
> int_index=int_index at entry=4,
> sz=sz at entry=407, now=now at entry=1760220211,
> unicast_dest=unicast_dest at entry=0, loopback=<optimized out>,
> is_inform=<optimized out>, pxe=<optimized out>,
> fallback=..., recvtime=<optimized out>) at ./debian/auto-build/
> dnsmasq-base/rfc2131.c:965
> #4 0x000055555558637c in dhcp_packet (now=now at entry=1760220211,
> pxe_fd=pxe_fd at entry=0) at ./debian/auto-build/dnsmasq-base/dhcp.c:340
> #5 0x000055555555f90f in main (argc=<optimized out>, argv=<optimized
> out>) at ./debian/auto-build/dnsmasq-base/dnsmasq.c:1299
>
More information about the Dnsmasq-discuss
mailing list