platform: fix invalid address lifetimes on startup

System Internals / NetworkManager - Thomas Haller [redhat.com] - 30 June 2014 07:19 UTC

When starting, the initally loaded addresses were not fixed to have absolute lifetimes.

This also leads to a crash due to failed assertion[1], when having already expired addresses during NetworkManager start.

[1] backtrace: #0 0x00007f39db91ec39 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007f39db920348 in __GI_abort () at abort.c:89 #2 0x00007f39dc35a0ed in _g_log_abort () at gmessages.c:255 #3 0x00007f39dc377c97 in g_assertion_message (domain=domain@entry=0x7f39e0085c67 "NetworkManager", file=file@entry=0x7f39e007f070 "platform/nm-linux-platform.c", line=line@entry=1146, func=func@entry=0x7f39e0081430 <__FUNCTION__.23775> "_init_ip_address_lifetime", message=message@entry=0x7f39e13828b0 "assertion failed: (a_preferred <= a_valid && a_valid > 0 && a_preferred > 0)") at gtestutils.c:2278 #4 0x00007f39dc377cfa in g_assertion_message_expr (domain=domain@entry=0x7f39e0085c67 "NetworkManager", file=file@entry=0x7f39e007f070 "platform/nm-linux-platform.c", line=line@entry=1146, func=func@entry=0x7f39e0081430 <__FUNCTION__.23775> "_init_ip_address_lifetime", expr=expr@entry=0x7f39e007f4e8 "a_preferred <= a_valid && a_valid > 0 && a_preferred > 0") at gtestutils.c:2293 #5 0x00007f39e0004608 in _init_ip_address_lifetime (address=address@entry=0x7fff7f8a2580, rtnladdr=rtnladdr@entry=0x7f39e12cdb20) at platform/nm-linux-platform.c:1144 #6 0x00007f39e0004ae4 in init_ip6_address (address=address@entry=0x7fff7f8a2580, rtnladdr=rtnladdr@entry=0x7f39e12cdb20) at platform/nm-linux-platform.c:1216 #7 0x00007f39e000a75e in ip6_address_get_all (platform=, ifindex=3) at platform/nm-linux-platform.c:3342 #8 0x00007f39e0032729 in nm_ip6_config_capture (ifindex=ifindex@entry=3, capture_resolv_conf=capture_resolv_conf@entry=0, use_temporary=use_temporary@entry=NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN) at nm-ip6-config.c:303 #9 0x00007f39dffee8fa in update_ip_config (self=0x7f39e1380300, initial=) at devices/nm-device.c:5841 #10 0x00007f39dffef52a in nm_device_capture_initial_config (dev=) at devices/nm-device.c:5869 #11 0x00007f39e003e74e in get_existing_connection (manager=manager@entry=0x7f39e132b150, device=device@entry=0x7f39e1380300) at nm-manager.c:1576 #12 0x00007f39e003edb2 in add_device (self=self@entry=0x7f39e132b150, device=device@entry=0x7f39e1380300, generate_con=) at nm-manager.c:1826 #13 0x00007f39e003f503 in platform_link_added (reason=, plink=0x7f39e1372340, ifindex=3, self=0x7f39e132b150) at nm-manager.c:2205 #14 platform_link_cb (platform=, ifindex=3, plink=0x7f39e1372340, change_type=, reason=, user_data=) at nm-manager.c:2220 #15 0x00007f39da868d8c in ffi_call_unix64 () at ../src/x86/unix64.S:76 #16 0x00007f39da8686bc in ffi_call (cif=cif@entry=0x7fff7f8a2a40, fn=0x7f39e003f360 , rvalue=0x7fff7f8a29b0, avalue=avalue@entry=0x7fff7f8a2930) at ../src/x86/ffi64.c:522 #17 0x00007f39dc84aad8 in g_cclosure_marshal_generic (closure=0x7f39e1368080, return_gvalue=0x0, n_param_values=, param_values=, invocation_hint=, marshal_data=0x0) at gclosure.c:1454 #18 0x00007f39dc84a298 in g_closure_invoke (closure=0x7f39e1368080, return_value=return_value@entry=0x0, n_param_values=5, param_values=param_values@entry=0x7fff7f8a2c40, invocation_hint=invocation_hint@entry=0x7fff7f8a2be0) at gclosure.c:777 #19 0x00007f39dc85c35d in signal_emit_unlocked_R (node=node@entry=0x7f39e12c16c0, detail=detail@entry=0, instance=instance@entry=0x7f39e12c30a0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fff7f8a2c40) at gsignal.c:3586 #20 0x00007f39dc8640f2 in g_signal_emit_valist (instance=, signal_id=, detail=, var_args=var_args@entry=0x7fff7f8a2e20) at gsignal.c:3330 #21 0x00007f39dc8643af in g_signal_emit (instance=, signal_id=, detail=detail@entry=0) at gsignal.c:3386 #22 0x00007f39e000e24c in nm_platform_query_devices () at platform/nm-platform.c:330 #23 0x00007f39e0040f30 in nm_manager_start (self=0x7f39e132b150) at nm-manager.c:4207 #24 0x00007f39dffe53ab in main (argc=1, argv=0x7fff7f8a3468) at main.c:657

Regression introduced by commit 8310a039d81e3a316cf657aa9f28edabb9be125c.

https://bugzilla.gnome.org/show_bug.cgi?id=732472

2a89258 platform: fix invalid address lifetimes on startup
src/platform/nm-linux-platform.c | 4 ++++
1 file changed, 4 insertions(+)

Upstream: cgit.freedesktop.org


  • Share