Systemd/src/network
Susant Sahani 7209086d8a networkd: do not update state or IPv6LL address if link is failed or lingering
This is partial fix for #2228 and #2977, #3204.

bridge-test: netdev ready
docker0: Gained IPv6LL
wlan0: Gained IPv6LL
eth0: Gained IPv6LL
Enumeration completed
bridge-test: netdev exists, using existing without changing its
parameters
vboxnet0: IPv6 enabled for interface: Success
lo: Configured
docker0: Could not drop address: No such process
vboxnet0: Gained carrier
wlan0: Could not drop address: No such process
eth0: Could not drop address: No such process
eth0: Could not drop address: No such process
eth0: Could not drop address: No such process
vboxnet0: Gained IPv6LL
vboxnet0: Could not set NDisc route or address: Invalid argument
vboxnet0: Failed
[New Thread 0x7ffff6505700 (LWP 1111)]
[Thread 0x7ffff6505700 (LWP 1111) exited]
Assertion 'link->state == LINK_STATE_SETTING_ROUTES' failed at
src/network/networkd-link.c:672, function link_enter_configured().
Aborting.

Program received signal SIGABRT, Aborted.
0x00007ffff6dc6a98 in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: dnf debuginfo-install
iptables-1.4.21-15.fc23.x86_64 libattr-2.4.47-14.fc23.x86_64
libidn-1.32-1.fc23.x86_64 pcre-8.38-7.fc23.x86_64

Debugging

(gdb) bt
"link->state == LINK_STATE_SETTING_ROUTES", file=0x5555556a34c8
"src/network/networkd-link.c", line=672,
    func=0x5555556a56d0 <__PRETTY_FUNCTION__.14850>
"link_enter_configured") at src/basic/log.c:788
src/network/networkd-link.c:672
src/network/networkd-link.c:720
flags=0 '\000', scope=0 '\000', cinfo=0x7fffffffe020) at
src/network/networkd-address.c:344
(rtnl=0x5555556eded0, message=0x55555570ff20, userdata=0x5555556ec590)
at src/network/networkd-manager.c:604
m=0x55555570ff20) at src/libsystemd/sd-netlink/sd-netlink.c:365
at src/libsystemd/sd-netlink/sd-netlink.c:395
ret=0x0) at src/libsystemd/sd-netlink/sd-netlink.c:429
revents=1, userdata=0x5555556eded0) at
src/libsystemd/sd-netlink/sd-netlink.c:723
src/libsystemd/sd-event/sd-event.c:2268
src/libsystemd/sd-event/sd-event.c:2629
timeout=18446744073709551615) at src/libsystemd/sd-event/sd-event.c:2688
bus=0x5555556eeba0, name=0x55555568a2f5 "org.freedesktop.network1",
timeout=30000000,
    check_idle=0x55555556adb6 <manager_check_idle>,
userdata=0x5555556ec590) at src/shared/bus-util.c:134
src/network/networkd-manager.c:1130
src/network/networkd.c:127

(gdb) f 3
src/network/networkd-link.c:672
672         assert(link->state == LINK_STATE_SETTING_ROUTES);
(gdb) p link->state
$1 = LINK_STATE_FAILED

We should not be in this state .

even if vboxnet0 failed we went into this state.

vboxnet0: Could not set NDisc route or address: Invalid argument
vboxnet0: Failed
2016-05-17 22:59:56 -04:00
..
.gitignore Add networkd-gperf.c to gitignore 2016-04-02 11:52:57 -04:00
Makefile
networkctl.c tree-wide: rename draw_special_char to special_glyph 2016-05-09 15:17:57 -04:00
networkd-address-pool.c network: check return value 2016-04-08 21:08:02 -04:00
networkd-address-pool.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-address.c networkd: do not update state or IPv6LL address if link is failed or lingering 2016-05-17 22:59:56 -04:00
networkd-address.h Merge pull request #3156 from keszybz/duid-settings 2016-05-04 11:31:59 +02:00
networkd-conf.c networkd: fix memleak in config_parse_duid_rawdata 2016-05-05 13:24:03 +02:00
networkd-conf.h networkd: rework duid_{type,duid_type,duid,duid_len} setting 2016-05-03 12:23:01 -04:00
networkd-dhcp4.c tree-wide: drop spurious "&"s when passing functions around 2016-05-15 19:56:59 -04:00
networkd-dhcp6.c tree-wide: drop spurious "&"s when passing functions around 2016-05-15 19:56:59 -04:00
networkd-fdb.c tree-wide: minor formatting inconsistency cleanups 2016-02-23 14:20:34 -08:00
networkd-fdb.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-gperf.gperf networkd: rework duid_{type,duid_type,duid,duid_len} setting 2016-05-03 12:23:01 -04:00
networkd-ipv4ll.c tree-wide: drop spurious "&"s when passing functions around 2016-05-15 19:56:59 -04:00
networkd-link-bus.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-link.c networkd: do not update state or IPv6LL address if link is failed or lingering 2016-05-17 22:59:56 -04:00
networkd-link.h networkd: reworkd LLDP emission to allow control of propagation level 2016-05-09 15:45:31 +02:00
networkd-lldp-tx.c networkd: reworkd LLDP emission to allow control of propagation level 2016-05-09 15:45:31 +02:00
networkd-lldp-tx.h networkd: reworkd LLDP emission to allow control of propagation level 2016-05-09 15:45:31 +02:00
networkd-manager-bus.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-manager.c networkd: drop route_drop 2016-05-14 16:46:01 -04:00
networkd-ndisc.c networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-bond.c networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-bond.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-bridge.c networkd: bridge add support to configure multicast snooping (#3223) 2016-05-15 09:15:20 -04:00
networkd-netdev-bridge.h networkd: bridge add support to configure multicast snooping (#3223) 2016-05-15 09:15:20 -04:00
networkd-netdev-dummy.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-netdev-dummy.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-gperf.gperf networkd: bridge add support to configure multicast snooping (#3223) 2016-05-15 09:15:20 -04:00
networkd-netdev-ipvlan.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-netdev-ipvlan.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-macvlan.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-netdev-macvlan.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-tunnel.c networkd: tunnel fix tunnel address 2016-02-20 18:03:31 +05:30
networkd-netdev-tunnel.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-tuntap.c networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-tuntap.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-veth.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-netdev-veth.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-vlan.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-netdev-vlan.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-vxlan.c networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev-vxlan.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-netdev.c networkd: do not generate a mac address for vlan interfaces (#3221) 2016-05-15 09:45:30 -04:00
networkd-netdev.h networkd: rework headers to avoid circular includes 2016-04-29 19:01:28 -04:00
networkd-network-bus.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-network-gperf.gperf networkd: Add EmitRouter= option for DHCP Server (#3251) 2016-05-17 19:34:25 -04:00
networkd-network.c networkd: Add EmitRouter= option for DHCP Server (#3251) 2016-05-17 19:34:25 -04:00
networkd-network.h networkd: Add EmitRouter= option for DHCP Server (#3251) 2016-05-17 19:34:25 -04:00
networkd-route.c networkd: add route expiration handler (#3242) 2016-05-17 21:36:43 -04:00
networkd-route.h networkd: drop route_drop 2016-05-14 16:46:01 -04:00
networkd-util.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-util.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-wait-online-link.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-wait-online-link.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-wait-online-manager.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
networkd-wait-online.c util: introduce common version() implementation and use it everywhere 2015-09-29 21:08:37 +02:00
networkd-wait-online.h tree-wide: place #pragma once at the same place everywhere 2016-02-20 22:42:29 +01:00
networkd.c DHCP DUID, IAID configuration options 2016-03-30 16:33:55 -07:00
networkd.h Trivial network cleanup (#3196) 2016-05-05 11:15:46 +02:00
org.freedesktop.network1.conf networkd: add basic dbus API 2015-02-05 11:50:34 +01:00
org.freedesktop.network1.service networkd: add basic dbus API 2015-02-05 11:50:34 +01:00
test-network-tables.c tree-wide: use mdash instead of a two minuses 2016-04-21 23:00:13 -04:00
test-network.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
test-networkd-conf.c test-networkd-conf: fix memleak 2016-05-05 13:24:03 +02:00