mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-03-21 21:30:39 +01:00
During disposal we're calling to remove_all_aps that in turns schedules
an auto-activate recheck. As the device is removed, this triggers an
assertion when trying to do the recheck.
Fix that by not scheduling the recheck.
Example of backtrace that this commits fix:
0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47
1 0xf746e270 in __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=<optimized out>) at pthread_kill.c:43
2 0xf743fbc6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
3 0xf7431614 in __GI_abort () at abort.c:79
4 0xf775afea in g_assertion_message (domain=domain@entry=0x209a9f "nm", file=file@entry=0x1f7d59 "../NetworkManager-1.43.7/src/core/nm-policy.c", line=line@entry=1665,
func=func@entry=0x1f94d9 <__func__.6> "nm_policy_device_recheck_auto_activate_schedule",
message=message@entry=0x1d3e950 "assertion failed: (g_signal_handler_find(device, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NM_POLICY_GET_PRIVATE(self)) != 0)")
at ../glib-2.72.3/glib/gtestutils.c:3253
5 0xf775b05e in g_assertion_message_expr (domain=0x209a9f "nm", file=0x1f7d59 "../NetworkManager-1.43.7/src/core/nm-policy.c", line=1665,
func=0x1f94d9 <__func__.6> "nm_policy_device_recheck_auto_activate_schedule",
expr=0x1f8afc "g_signal_handler_find(device, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NM_POLICY_GET_PRIVATE(self)) != 0") at ../glib-2.72.3/glib/gtestutils.c:3279
6 0x0005f27a in nm_policy_device_recheck_auto_activate_schedule (self=0x1d3e950, device=0x209a9f) at ../NetworkManager-1.43.7/src/core/nm-policy.c:1679
7 0x000548ae in nm_manager_device_recheck_auto_activate_schedule (self=<optimized out>, device=<optimized out>) at ../NetworkManager-1.43.7/src/core/nm-manager.c:3113
8 0x00070622 in nm_device_recheck_auto_activate_schedule (self=<optimized out>) at ../NetworkManager-1.43.7/src/core/devices/nm-device.c:9249
9 0xf693aa8c in ap_add_remove (self=self@entry=0x1ceb0b0, is_adding=0, ap=<optimized out>, recheck_available_connections=0)
at ../NetworkManager-1.43.7/src/core/devices/wifi/nm-device-wifi.c:846
10 0xf693bcda in remove_all_aps (self=self@entry=0x1ceb0b0) at ../NetworkManager-1.43.7/src/core/devices/wifi/nm-device-wifi.c:863
11 0xf693f83c in dispose (object=0x1ceb0b0) at ../NetworkManager-1.43.7/src/core/devices/wifi/nm-device-wifi.c:3809
12 0xf7806e72 in g_object_unref (_object=<optimized out>) at ../glib-2.72.3/gobject/gobject.c:3636
13 g_object_unref (_object=0x1ceb0b0) at ../glib-2.72.3/gobject/gobject.c:3553
14 0x000f7fa4 in _nm_dbus_object_clear_and_unexport (location=location@entry=0xffa50644) at ../NetworkManager-1.43.7/src/core/nm-dbus-object.c:203
15 0x000576e4 in remove_device (self=self@entry=0x1c9c900, device=<optimized out>, quitting=quitting@entry=1) at ../NetworkManager-1.43.7/src/core/nm-manager.c:2289
16 0x0005a864 in nm_manager_stop (self=self@entry=0x1c9c900) at ../NetworkManager-1.43.7/src/core/nm-manager.c:7784
17 0x00023438 in main (argc=<optimized out>, argv=<optimized out>) at ../NetworkManager-1.43.7/src/core/main.c:530
Fixes:
|
||
|---|---|---|
| .. | ||
| devices | ||
| dhcp | ||
| dns | ||
| dnsmasq | ||
| ndisc | ||
| platform | ||
| ppp | ||
| settings | ||
| supplicant | ||
| tests | ||
| vpn | ||
| main-utils.c | ||
| main-utils.h | ||
| main.c | ||
| meson.build | ||
| NetworkManagerUtils.c | ||
| NetworkManagerUtils.h | ||
| nm-act-request.c | ||
| nm-act-request.h | ||
| nm-active-connection.c | ||
| nm-active-connection.h | ||
| nm-audit-manager.c | ||
| nm-audit-manager.h | ||
| nm-auth-manager.c | ||
| nm-auth-manager.h | ||
| nm-auth-utils.c | ||
| nm-auth-utils.h | ||
| nm-bond-manager.c | ||
| nm-bond-manager.h | ||
| nm-checkpoint-manager.c | ||
| nm-checkpoint-manager.h | ||
| nm-checkpoint.c | ||
| nm-checkpoint.h | ||
| nm-config-data.c | ||
| nm-config-data.h | ||
| nm-config.c | ||
| nm-config.h | ||
| nm-connectivity.c | ||
| nm-connectivity.h | ||
| nm-core-utils.c | ||
| nm-core-utils.h | ||
| nm-dbus-manager.c | ||
| nm-dbus-manager.h | ||
| nm-dbus-object.c | ||
| nm-dbus-object.h | ||
| nm-dbus-utils.c | ||
| nm-dbus-utils.h | ||
| nm-dcb.c | ||
| nm-dcb.h | ||
| nm-default-daemon.h | ||
| nm-dhcp-config.c | ||
| nm-dhcp-config.h | ||
| nm-dispatcher.c | ||
| nm-dispatcher.h | ||
| nm-firewall-utils.c | ||
| nm-firewall-utils.h | ||
| nm-firewalld-manager.c | ||
| nm-firewalld-manager.h | ||
| nm-hostname-manager.c | ||
| nm-hostname-manager.h | ||
| nm-ip-config.c | ||
| nm-ip-config.h | ||
| nm-keep-alive.c | ||
| nm-keep-alive.h | ||
| nm-l3-config-data.c | ||
| nm-l3-config-data.h | ||
| nm-l3-ipv4ll.c | ||
| nm-l3-ipv4ll.h | ||
| nm-l3-ipv6ll.c | ||
| nm-l3-ipv6ll.h | ||
| nm-l3cfg.c | ||
| nm-l3cfg.h | ||
| nm-manager.c | ||
| nm-manager.h | ||
| nm-netns.c | ||
| nm-netns.h | ||
| nm-pacrunner-manager.c | ||
| nm-pacrunner-manager.h | ||
| nm-policy.c | ||
| nm-policy.h | ||
| nm-power-monitor.c | ||
| nm-power-monitor.h | ||
| nm-priv-helper-call.c | ||
| nm-priv-helper-call.h | ||
| nm-rfkill-manager.c | ||
| nm-rfkill-manager.h | ||
| nm-session-monitor.c | ||
| nm-session-monitor.h | ||
| nm-test-utils-core.h | ||
| nm-types.h | ||
| org.freedesktop.NetworkManager.conf | ||
| README.l3cfg.md | ||
| README.md | ||
| README.next.ip-config.md | ||
core
The source code of the NetworkManager daemon.
NetworkManager is a daemon that provides a D-Bus API and a file-based API for configuring the network on a Linux host.
This is the daemon source code.