Beginner error on my part : there are debug logs in networkd, I didn't
even check them. As often, it turns out part of the answer lies in
there.

Here are the logs from 2.33:

autopkgtest systemd-networkd[942]: test_eth42: Gained IPv6LL
autopkgtest systemd-networkd[942]: test_eth42: link_check_ready(): DHCP4, DHCP6 
or IPv4LL is enabled but no dynamic address is assigned yet.
autopkgtest systemd-networkd[942]: test_eth42: Discovering IPv6 routers
autopkgtest systemd-networkd[942]: NDISC: Started IPv6 Router Solicitation 
client
autopkgtest systemd-networkd[942]: test_eth42: Remembering foreign route: dst: 
fe80::dcad:beff:feef:4711/128, src: n/a, gw: n/a, prefsrc: n/a, scope: global, 
table: local(255), proto: kernel, type: local, nexthop: 0
autopkgtest systemd-networkd[942]: NDISC: Sent Router Solicitation, next 
solicitation in 4s
autopkgtest systemd-networkd[942]: rtnl: received non-static neighbor, ignoring.
autopkgtest systemd-networkd[942]: NDISC: Received Router Advertisement: flags 
MANAGED preference medium lifetime 1800 sec
autopkgtest systemd-networkd[942]: NDISC: Invoking callback for 'router' event.
autopkgtest systemd-networkd[942]: DHCPv6 CLIENT: Started in Managed mode
autopkgtest systemd-networkd[942]: test_eth42: Acquiring DHCPv6 lease on NDisc 
request
autopkgtest systemd-networkd[942]: test_eth42: Configuring route: dst: n/a, 
src: n/a, gw: fe80::6051:85ff:fe70:4c03, prefsrc: n/a, scope: global, table: 
main(254), proto: ra, type: unicast, nexthop: 0

And the equivalent in 2.34:

Aug 27 14:28:27 autopkgtest systemd-networkd[939]: test_eth42: Gained IPv6LL
Aug 27 14:28:27 autopkgtest systemd-networkd[939]: test_eth42: 
link_check_ready(): DHCP4, DHCP6 or IPv4LL is enabled but no dynamic address is 
assigned yet.
Aug 27 14:28:27 autopkgtest systemd-networkd[939]: test_eth42: Discovering IPv6 
routers
Aug 27 14:28:27 autopkgtest systemd-networkd[939]: NDISC: Started IPv6 Router 
Solicitation client
Aug 27 14:28:27 autopkgtest systemd-networkd[939]: test_eth42: Remembering 
foreign route: dst: fe80::dcad:beff:feef:4711/128, src: n/a, gw: n/a, prefsrc: 
n/a, scope: global, table: local(255), proto: kernel, type: local, nexthop: 0
Aug 27 14:28:29 autopkgtest systemd-networkd[939]: NDISC: Sent Router 
Solicitation, next solicitation in 4s
Aug 27 14:28:29 autopkgtest systemd-networkd[939]: rtnl: received non-static 
neighbor, ignoring.
Aug 27 14:28:29 autopkgtest systemd-networkd[939]: NDISC: Unexpected error 
while reading from ICMPv6, ignoring: Exchange full

Looking through the code, one can trace the EXFULL error to this
function:

https://github.com/systemd/systemd/blob/main/src/basic/socket-
util.c#L1260

Which checks the msg flags and finds MSG_CTRUNC.
The thing is, the recvmsg in strace looks like this:

recvmsg(20, {msg_name={sa_family=AF_INET6, sin6_port=htons(0),
sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "fe80::6051:85ff:fe70:4c03",
&sin6_addr), sin6_scope_id=if_nametoindex("test_eth42")},
msg_namelen=128->28,
msg_iov=[{iov_base="\206\0000\276@\300\7\10\0\0\0\0\0\0\0\0\3\4@\200\377\377\377\377\377\377\377\377\0\0\0\0"...,
iov_len=88}], msg_iovlen=1, msg_control=[{cmsg_len=20,
cmsg_level=SOL_SOCKET, cmsg_type=SO_TIMESTAMP_OLD,
cmsg_data={tv_sec=1630055833, tv_usec=877754}}, {cmsg_len=16,
cmsg_level=SOL_IPV6, cmsg_type=0x34}], msg_controllen=36, msg_flags=0},
MSG_DONTWAIT) = 88

You'll note the msg_flags=0 at the end.

So... What the hell?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1940635

Title:
  systemd-networkd failing to acquire a DHCP6 lease from dnsmasq on
  armhf

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1940635/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to