GNOME Bugzilla – Bug 732472
Networkmanager refuse to start if there is a deprecated ipv6 on 1 interface
Last modified: 2014-06-30 12:26:04 UTC
This morning, with Networkmanager from rawhide ( NetworkManager-0.9.9.98-1.git20140620.fc21.x86_64 ), I had the bad surprise to see it was not running. Upon further debugging, it turned out to be caused by this : [root@liliana misc]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: em1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether f3:2e:21:13:62:b5 brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:25:d4:44:37:1c brd ff:ff:ff:ff:ff:ff inet 192.168.76.124/24 brd 192.168.76.255 scope global dynamic wlan0 valid_lft 64173sec preferred_lft 64173sec inet6 2002:52ee:dc52:1:224:d7ff:5e3e:271c/64 scope global deprecated noprefixroute dynamic valid_lft 45262sec preferred_lft 0sec inet6 fe80::224:d7ff:4e2e:572d/64 scope link valid_lft forever preferred_lft forever 4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 52:54:00:e3:32:44 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fee9:7243/64 scope link valid_lft forever preferred_lft forever 5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 500 link/ether 52:54:00:e3:32:44 brd ff:ff:ff:ff:ff:ff More specifically from this line : inet6 2002:52ee:dc52:1:224:d7ff:5e3e:271c/64 scope global deprecated noprefixroute dynamic valid_lft 45262sec preferred_lft 0sec This trigger a assert in _init_ip_address_lifetime : juin 30 11:53:58 liliana.cdg.example.org NetworkManager[26736]: NetworkManager:ERROR:platform/nm-linux-platform.c:1144:_init_ip_address_lifetime: assertion failed: (a_preferred <= a_valid && a_valid > 0 && a_preferred > 0) This is quite interesting, because on the next step, NetworkManager do place a_preffered to 0 to signal the interface address is deprecated when this is not valid anymore. This also seems to be a documented practice (if a blog count as doc, which is maybe not the case) : http://www.davidc.net/networking/ipv6-source-address-selection-linux So after removing the ip v6 from the wlan0 interface fixed the issue. Unfortunately, I do not know how the preferred lifetime was put to 0, I suspect this is networkManager itself, or the kernel.
Hi Michael, thanks for the detailed bug report. The assertion condition is correct. Inside _init_ip_address_lifetime(), the valid/preferred times are no longer those as reported via netlink. Instead they are modified to be absolute timestamps, which must to be > 0. The error was, that during startup there were some addresses, which timestamps were unmodified. Pushed fixes to master: http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=2a8925856233c05e9a94560dca548e1162aab2f1 nm-0-9-10: http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=69cb909c9bf329ca453cdcf8cb31f9bc514b2f26 fixes for Fedora rawhide will come with the next update (newer then NetworkManager-0.9.9.98-1.git20140620.fc21.x86_64).