[Pkg-utopia-maintainers] Bug#649205: network-manager recreates /etc/resolv.conf after every router announcement [was: nm_system_apply_ip6_config(): (wlan0): failed to set IPv6 route: Netlink Error (errno = No route to host)]

Jarek Kamiński jarek at vilo.eu.org
Fri Nov 25 13:35:54 UTC 2011


retitle 649205 network-manager recreates /etc/resolv.conf after every router announcement
thx

Hello again.

On Fri, Nov 18, 2011 at 09:11:08PM +0100, Jarek Kamiński wrote:
> NM loops with following log:
> #v+
> Nov 18 20:58:30 rocket NetworkManager[8694]: <info> Activation (wlan0) Stage 4 of 5 (IP6 Configure Get) scheduled...
> Nov 18 20:58:30 rocket NetworkManager[8694]: <info> Activation (wlan0) Stage 4 of 5 (IP6 Configure Get) started...
> Nov 18 20:58:30 rocket NetworkManager[8694]: <info> Activation (wlan0) Stage 5 of 5 (IP Configure Commit) scheduled...
> Nov 18 20:58:30 rocket NetworkManager[8694]: <info> Activation (wlan0) Stage 4 of 5 (IP6 Configure Get) complete.
> Nov 18 20:58:30 rocket NetworkManager[8694]: <info> Activation (wlan0) Stage 5 of 5 (IP Configure Commit) started...
> Nov 18 20:58:30 rocket NetworkManager[8694]: <warn> Failed to add route Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <error> [1321646310.957620] [nm-system.c:595] nm_system_apply_ip6_config(): (wlan0): failed to set IPv6 route: Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <warn> Failed to add route Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <error> [1321646310.957705] [nm-system.c:595] nm_system_apply_ip6_config(): (wlan0): failed to set IPv6 route: Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <warn> Failed to add route Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <error> [1321646310.957786] [nm-system.c:595] nm_system_apply_ip6_config(): (wlan0): failed to set IPv6 route: Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <warn> Failed to add route Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <error> [1321646310.957867] [nm-system.c:595] nm_system_apply_ip6_config(): (wlan0): failed to set IPv6 route: Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <warn> Failed to add route Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <error> [1321646310.957950] [nm-system.c:595] nm_system_apply_ip6_config(): (wlan0): failed to set IPv6 route: Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <warn> Failed to add route Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <error> [1321646310.958035] [nm-system.c:595] nm_system_apply_ip6_config(): (wlan0): failed to set IPv6 route: Netlink Error (errno = No route to host)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <info> Policy set 'hackme' (wlan0) as default for IPv4 routing and DNS.
> Nov 18 20:58:30 rocket NetworkManager[8694]: <warn> Failed to add route Netlink Error (errno = File exists)
> Nov 18 20:58:30 rocket NetworkManager[8694]: <error> [1321646310.958810] [nm-system.c:1061] nm_system_replace_default_ip6_route(): (wlan0): failed to set IPv6 default route: -1
> Nov 18 20:58:30 rocket NetworkManager[8694]: <info> Policy set 'hackme' (wlan0) as default for IPv6 routing and DNS.
> Nov 18 20:58:30 rocket NetworkManager[8694]: <info> Activation (wlan0) Stage 5 of 5 (IP Configure Commit) complete.
> Nov 18 20:58:48 rocket NetworkManager[8694]: <info> Activation (wlan0) Stage 4 of 5 (IP6 Configure Get) scheduled...
> [...]
> #v-
> 
> It also keeps (I assume it's related to above) rewriting
> /etc/resolv.conf, regularly making disk spin up when on battery.

I've dug deeper into that and I think I've found out what's going on.
My router sends (as expected) periodical RA messages, which are then
processed by kernel. The kernel refreshes router and addresses validity
timers and informs about that processes listening on netlink socket.
NM receives those messages in netlink_notification() in
nm-ip6-manager.c. Notifications are about route or address change, so
config_changed is set to TRUE, which is then passed to
nm_ip6_device_sync_from_netlink() and causes emit_config_changed. Which
results in /etc/resolv.conf being rewritten and spurious disk spin-ups.

I've worked around it by commenting proper config_changed = TRUE
assignments, but that's of course not a proper solution. NM probably
should remember seen addresses and routes and ignore refreshes.


Sorry for the initially unclear submission, those
nm_system_apply_ip6_config() errors misled me and I tough they're
related. I hope it's better now and that I didn't misunderstood how
these things work too much ;-)

-- 
pozdr(); // Jarek





More information about the Pkg-utopia-maintainers mailing list