Comment 14 for bug 1926139

Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

Test packages:

https://launchpad.net/~mfo/+archive/ubuntu/lp1926139
isc-dhcp 4.4.1-2.1ubuntu5.20.04.4+lp1926139.2

Default behavior: issue fixed.
---

 (gdb) break omapip/dispatch.c:333
 (gdb) commands
 shell sleep 0.2
 continue
 end

 (gdb) run -d -v veth1
 ...
 DHCPDISCOVER on veth1 to 255.255.255.255 port 67 interval 3 (xid=0x9679b264)
 DHCPOFFER of 192.168.42.100 from 192.168.42.1
 DHCPREQUEST for 192.168.42.100 on veth1 to 255.255.255.255 port 67 (xid=0x64b27996)
 DHCPACK of 192.168.42.100 from 192.168.42.1 (xid=0x9679b264)
 ...
 ^C
 (gdb) kill

 Release address.

 (gdb) run -d -v veth1 -r
 ...

Original behavior with environment variable: issue observed.
---

 (gdb) set environment DHCP_FD_FLAGS_POKE 0
 (gdb) run -d -v veth1
 ...
 DHCPDISCOVER on veth1 to 255.255.255.255 port 67 interval 3 (xid=0xc2db3363)
 DHCPDISCOVER on veth1 to 255.255.255.255 port 67 interval 5 (xid=0xc2db3363)
 DHCPDISCOVER on veth1 to 255.255.255.255 port 67 interval 5 (xid=0xc2db3363)
 DHCPDISCOVER on veth1 to 255.255.255.255 port 67 interval 6 (xid=0xc2db3363)
 DHCPDISCOVER on veth1 to 255.255.255.255 port 67 interval 16 (xid=0xc2db3363)
 ^C
 ...
 (gdb) kill

 (gdb) unset environment DHCP_FD_FLAGS_POKE

Original behavior with kernel cmdline option: issue observed.
---

 (gdb) shell echo "$(cat /proc/cmdline) dhcp.fd_flags_poke=0" >/tmp/cmdline
 (gdb) shell mount --bind /tmp/cmdline /proc/cmdline
 (gdb) shell cat /proc/cmdline
 BOOT_IMAGE=/boot/vmlinuz-5.4.0-1084-kvm root=PARTUUID=a1286399-334e-4597-b30f-da227b6c076b ro console=tty1 console=ttyS0 panic=-1 dhcp.fd_flags_poke=0

 (gdb) run -d -v veth1
 ...
 DHCPDISCOVER on veth1 to 255.255.255.255 port 67 interval 3 (xid=0x938a6b0b)
 DHCPDISCOVER on veth1 to 255.255.255.255 port 67 interval 4 (xid=0x938a6b0b)
 DHCPDISCOVER on veth1 to 255.255.255.255 port 67 interval 8 (xid=0x938a6b0b)
 DHCPDISCOVER on veth1 to 255.255.255.255 port 67 interval 20 (xid=0x938a6b0b)
 ^C
 ...
 (gdb) kill

 (gdb) shell umount /proc/cmdline