Systemd/src
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
..
ac-power tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
activate activate: improve SIGCHLD handler 2016-04-05 14:34:04 +00:00
analyze tree-wide: rename draw_special_char to special_glyph 2016-05-09 15:17:57 -04:00
ask-password ask-password: add option --no-output to not print password to stdout 2016-03-01 19:02:11 +01:00
backlight tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
basic Merge pull request #3193 from htejun/cgroup-io-controller 2016-05-16 22:05:27 +02:00
binfmt tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
boot tree-wide: rename draw_special_char to special_glyph 2016-05-09 15:17:57 -04:00
cgls shared: drop kernel_thread bool from cgroups show code 2016-04-22 16:06:20 +02:00
cgroups-agent tree-wide: introduce new SOCKADDR_UN_LEN() macro, and use it everywhere 2016-05-05 22:24:36 +02:00
cgtop core: add io controller support on the unified hierarchy 2016-05-05 16:43:06 -04:00
core core/dbus: use free_and_strdup to simplify code (#3279) 2016-05-17 19:30:37 -04:00
coredump coredump: use next_datagram_size_fd instead of ioctl(FIONREAD) (#3237) 2016-05-11 14:29:24 +02:00
cryptsetup cryptsetup: do not 'fail' if trying to detach a nonexistent device 2016-04-01 20:51:20 +02:00
dbus1-generator tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
debug-generator tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
delta tree-wide: rename draw_special_char to special_glyph 2016-05-09 15:17:57 -04:00
detect-virt tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
escape tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
firstboot tree-wide: rename draw_special_char to special_glyph 2016-05-09 15:17:57 -04:00
fsck tree-wide: introduce new SOCKADDR_UN_LEN() macro, and use it everywhere 2016-05-05 22:24:36 +02:00
fstab-generator Create initrd-root-device.target synchronization point (#3239) 2016-05-12 18:42:39 +02:00
getty-generator tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
gpt-auto-generator Create initrd-root-device.target synchronization point (#3239) 2016-05-12 18:42:39 +02:00
hibernate-resume tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
hostname selinux: always try to load the full selinux db 2016-03-01 20:39:30 -05:00
hwdb tree-wide: expose "p"-suffix unref calls in public APIs to make gcc cleanup easy 2015-11-27 19:19:36 +01:00
import tree-wide: introduce new SOCKADDR_UN_LEN() macro, and use it everywhere 2016-05-05 22:24:36 +02:00
initctl tree-wide: make ++/-- usage consistent WRT spacing 2016-02-22 20:32:04 -08:00
journal journald: stack allocation cannot fail 2016-05-05 22:26:09 +02:00
journal-remote journal-remote : Ensure reallocation of source->buf does not result in source->size < source->filled (#3086) 2016-04-22 14:04:17 -04:00
kernel-install
libsystemd tree-wide: drop spurious "&"s when passing functions around 2016-05-15 19:56:59 -04:00
libsystemd-network networkd: Add EmitRouter= option for DHCP Server (#3251) 2016-05-17 19:34:25 -04:00
libudev include sys/sysmacros.h in more places 2016-03-14 23:29:10 -04:00
locale locale: Language fallbacks for fr_(BE|CA|CH|LU) to fr_FR (#3178) 2016-05-02 19:43:37 -04:00
login logind: introduce LockedHint and SetLockedHint (#3238) 2016-05-11 19:34:13 +02:00
machine machinectl: since clone/remove/copy verbs are possibly slow, turn off bus call timeout 2016-05-02 11:17:06 +02:00
machine-id-setup tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
modules-load tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
network networkd: do not update state or IPv6LL address if link is failed or lingering 2016-05-17 22:59:56 -04:00
notify tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
nspawn nspawn: drop spurious newline 2016-05-12 20:14:58 +02:00
nss-myhostname nss-myhostname: remove dead test of variable that was not set 2016-04-05 23:19:56 -04:00
nss-mymachines tree-wide: make ++/-- usage consistent WRT spacing 2016-02-22 20:32:04 -08:00
nss-resolve Move nss typedefs into nss-util.h 2016-04-02 20:11:41 -04:00
path tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
quotacheck tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
random-seed tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
rc-local-generator tree-wide: make more global variables static 2016-02-13 12:28:28 +01:00
remount-fs tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
reply-password tree-wide: introduce new SOCKADDR_UN_LEN() macro, and use it everywhere 2016-05-05 22:24:36 +02:00
resolve treewide: fix typos (#3187) 2016-05-04 11:26:17 +02:00
rfkill tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
run Merge pull request #3094 from poettering/run-slice 2016-04-22 14:04:38 -04:00
shared Merge pull request #3193 from htejun/cgroup-io-controller 2016-05-16 22:05:27 +02:00
sleep tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
socket-proxy tree-wide: introduce new SOCKADDR_UN_LEN() macro, and use it everywhere 2016-05-05 22:24:36 +02:00
stdio-bridge stdio-bridge: Correctly propagate error 2016-02-29 10:45:34 +01:00
sysctl tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
system-update-generator tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
systemctl Merge pull request #3193 from htejun/cgroup-io-controller 2016-05-16 22:05:27 +02:00
systemd networkd: Add EmitRouter= option for DHCP Server (#3251) 2016-05-17 19:34:25 -04:00
sysusers selinux: always try to load the full selinux db 2016-03-01 20:39:30 -05:00
sysv-generator tree-wide: use ERFKILL instead of ESHUTDOWN for "unit masked" 2016-04-16 18:41:34 -04:00
test util-lib: add new ifname_valid() call that validates interface names 2016-05-09 15:45:31 +02:00
timedate selinux: always try to load the full selinux db 2016-03-01 20:39:30 -05:00
timesync clock-util: make clock_is_localtime() testable and add initial tests 2016-02-26 11:28:49 +01:00
tmpfiles tmpfiles: add new 'e' action which cleans up a dir without creating it 2016-04-20 09:00:39 -04:00
tty-ask-password-agent tree-wide: introduce new SOCKADDR_UN_LEN() macro, and use it everywhere 2016-05-05 22:24:36 +02:00
udev tree-wide: introduce new SOCKADDR_UN_LEN() macro, and use it everywhere 2016-05-05 22:24:36 +02:00
update-done selinux: always try to load the full selinux db 2016-03-01 20:39:30 -05:00
update-utmp tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
user-sessions selinux: always try to load the full selinux db 2016-03-01 20:39:30 -05:00
vconsole vconsole: add log_oom() where appropriate 2016-05-17 10:29:28 +02:00
.gitignore
Makefile