Hi,
with the current git master (v215-293-g4e6029435111) restarting
systemd-networkd triggers an assert() here:
In netdev_join_handler():
assert(IN_SET(link->state, LINK_STATE_ENSLAVING, LINK_STATE_FAILED,
LINK_STATE_LINGER));
gdb tells me that link->state is LINK_STATE_SETTING_ADDRESSES here.
It doesn't happen all the time, but when it happens, then the assert()
tiggers until the start limit kicks in.
My configuration looks like this:
-------- eth0.network-----------
[Match]
Name=eth0
[Network]
DHCP=v4
IPv4LL=yes
MACVLAN=vlan0
-------- vlan0.netdev------------
[NetDev]
Name=vlan0
Kind=macvlan
[MACVLAN]
Mode=private
-------- vlan0.network-----------
[Match]
Name=vlan0
[Network]
Address=10.1.42.4/24
---------------------------------
After adding Environment=SYSTEMD_LOG_LEVEL=debug to the service the journal
looks like this:
Jul 01 00:13:39 BaseKit systemd[1]: Starting Network Service...
Jul 01 00:13:39 BaseKit systemd-networkd[553]: timestamp of
'/lib/systemd/network' changed
Jul 01 00:13:39 BaseKit systemd-networkd[553]: vlan0 : loaded macvlan
Jul 01 00:13:39 BaseKit systemd-networkd[553]: sd-rtnl: discarding 20 bytes of
incoming message
Jul 01 00:13:39 BaseKit systemd-networkd[553]: vlan0 : link 3 added
Jul 01 00:13:39 BaseKit systemd-networkd[553]: vlan0 : udev
initialized link
Jul 01 00:13:39 BaseKit systemd-networkd[553]: vlan0 : netdev has
index 3
Jul 01 00:13:39 BaseKit systemd-networkd[553]: vlan0 : flags change:
+UP +LOWER_UP +RUNNING +MULTICAST +BROADCAST
Jul 01 00:13:39 BaseKit systemd-networkd[553]: vlan0 : gained carrier
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : link 2 added
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : udev
initialized link
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : flags change:
+UP +LOWER_UP +RUNNING +MULTICAST +BROADCAST
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : gained carrier
Jul 01 00:13:39 BaseKit systemd-networkd[553]: lo : link 1 added
Jul 01 00:13:39 BaseKit systemd-networkd[553]: lo : udev
initialized link
Jul 01 00:13:39 BaseKit systemd-networkd[553]: lo : flags change:
+LOOPBACK +UP +LOWER_UP +RUNNING
Jul 01 00:13:39 BaseKit systemd-networkd[553]: lo : gained carrier
Jul 01 00:13:39 BaseKit systemd[1]: Started Network Service.
Jul 01 00:13:39 BaseKit systemd-networkd[553]: vlan0 : link state is
up-to-date
Jul 01 00:13:39 BaseKit systemd-networkd[553]: vlan0 : found matching
network '/lib/systemd/network/vlan0.network'
Jul 01 00:13:39 BaseKit systemd-networkd[553]: vlan0 : joined netdev
Jul 01 00:13:39 BaseKit systemd-networkd[553]: vlan0 : setting
addresses
Jul 01 00:13:39 BaseKit systemd-networkd[553]: Sent message type=method_call
sender=n/a destination=org.freedesktop.DBus object=/org/freedesktop/DBus
interface=org.freedesktop.DBus member=Hello cookie=1 reply_cookie=0 error=n/a
Jul 01 00:13:39 BaseKit systemd-networkd[553]: Got message type=method_return
sender=org.freedesktop.DBus destination=:1.26 object=n/a interface=n/a
member=n/a cookie=1 reply_cookie=1 error=n/a
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : getting
address failed: Device or resource busy
Jul 01 00:13:39 BaseKit systemd-networkd[553]: Got message type=signal
sender=org.freedesktop.DBus destination=:1.26 object=/org/freedesktop/DBus
interface=org.freedesktop.DBus member=NameAcquired cookie=2 reply_cookie=0
error=n/a
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : link state is
up-to-date
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : found matching
network '/lib/systemd/network/eth0.network'
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : acquiring IPv4
link-local address
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : acquiring
DHCPv4 lease
Jul 01 00:13:39 BaseKit systemd-networkd[553]: DHCP CLIENT (0x97290dbb):
STARTED on ifindex 2 with address 52:54:0:12:34:56
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : enslaving by
'vlan0'
Jul 01 00:13:39 BaseKit systemd-networkd[553]: IPv4LL: PROBE
Jul 01 00:13:39 BaseKit systemd-networkd[553]: DHCP CLIENT (0x97290dbb):
DISCOVER
Jul 01 00:13:39 BaseKit systemd-networkd[553]: lo : getting
address failed: Device or resource busy
Jul 01 00:13:39 BaseKit systemd-networkd[553]: DHCP CLIENT (0x97290dbb): OFFER
Jul 01 00:13:39 BaseKit systemd-networkd[553]: lo : link state is
up-to-date
Jul 01 00:13:39 BaseKit systemd-networkd[553]: lo : unmanaged
Jul 01 00:13:39 BaseKit systemd-networkd[553]: DHCP CLIENT (0x97290dbb):
REQUEST (requesting)
Jul 01 00:13:39 BaseKit systemd-networkd[553]: DHCP CLIENT (0x97290dbb): ACK
Jul 01 00:13:39 BaseKit systemd-networkd[553]: DHCP CLIENT (0x97290dbb): lease
expires in 4min 31.009207s
Jul 01 00:13:39 BaseKit systemd-networkd[553]: DHCP CLIENT (0x97290dbb): T2
expires in 3min 56.182129s
Jul 01 00:13:39 BaseKit systemd-networkd[553]: DHCP CLIENT (0x97290dbb): T1
expires in 2min 14.923630s
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : DHCPv4 address
192.168.51.130/24 via 192.168.51.1
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : setting
addresses
Jul 01 00:13:39 BaseKit systemd-networkd[553]: IPv4LL: STOPPED
Jul 01 00:13:39 BaseKit systemd-networkd[553]: sd-rtnl: discarding 20 bytes of
incoming message
Jul 01 00:13:39 BaseKit systemd-networkd[553]: vlan0 : added address:
fe80::ecb2:e4ff:fee9:9371/64
Jul 01 00:13:39 BaseKit systemd-networkd[553]: eth0 : added address:
fe80::5054:ff:fe12:3456/64
Jul 01 00:13:40 BaseKit systemd-networkd[553]: lo : added address:
::1/128
Jul 01 00:13:40 BaseKit systemd-networkd[553]: vlan0 : added address:
10.1.42.4/24
Jul 01 00:13:40 BaseKit systemd-networkd[553]: eth0 : added address:
192.168.51.130/24
Jul 01 00:13:40 BaseKit systemd-networkd[553]: lo : added address:
127.0.0.1/8
Jul 01 00:13:40 BaseKit systemd-networkd[553]: vlan0 : addresses set
Jul 01 00:13:40 BaseKit systemd-networkd[553]: vlan0 : link configured
Jul 01 00:13:40 BaseKit systemd-networkd[553]: Assertion '({ const
typeof(LINK_STATE_ENSLAVING) _y = (LINK_STATE_ENSLAVING); const typeof(_y) _x =
(link->state); unsigned _i; _Bool _found = 0; for (_i = 0; _i < 1 +
sizeof((const typeof(_x)[]) { LINK_STATE_FAILED, LINK_STATE_LINGER
})/sizeof(const typeof(_x)); _i++) if (((const typeof(_x)[]) { _y,
LINK_STATE_FAILED, LINK_STATE_LINGER })[_i] == _x) { _found = 1; break; }
_found; })' failed at src/network/networkd-link.c:1759, function
netdev_join_handler(). Aborting.
Jul 01 00:13:40 BaseKit systemd[1]: Unit systemd-networkd.service entered
failed state.
I have no idea what happens here. Maybe someone with more knowledge about
the internals of systemd-networkd has an idea.
Michael
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel