mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-06-20 07:08:29 +02:00
settings: let connections keep NMSettings alive
The NMSettings instance can't be disposed while there is any exported connection. Ideally we should unexport all connections on NMSettings' disposal, but for now leak @self on termination when there are connections alive. This fixes the following bug on shutdown: assertion failed: (c_list_is_empty (&priv->connections_lst_head)) #0 raise () from target:/lib64/libc.so.6 #1 abort () from target:/lib64/libc.so.6 #2 g_assertion_message (domain=0x66cab2 "NetworkManager", file=0x6a5e48 "src/settings/nm-settings.c", line=1929) #3 g_assertion_message_expr () at gtestutils.c:2555 #4 finalize (object=0x1dab170) at src/settings/nm-settings.c:1929 #5 g_object_unref (_object=0x1dab170) at gobject.c:3340 #6 dispose (object=0x1de50b0) at src/nm-manager.c:7139 #7 g_object_unref (_object=0x1de50b0) at gobject.c:3303 #8 _nm_singleton_instance_destroy () at src/nm-core-utils.c:138 #9 _dl_fini () from target:/lib64/ld-linux-x86-64.so.2 #10 __run_exit_handlers () from target:/lib64/libc.so.6 #11 exit () from target:/lib64/libc.so.6 #12 main (argc=<optimized out>, argv=<optimized out>) at src/main.c:460 https://bugzilla.redhat.com/show_bug.cgi?id=1579858
This commit is contained in:
parent
bd63d39252
commit
3fb4eed3ef
1 changed files with 7 additions and 0 deletions
|
|
@ -886,6 +886,8 @@ connection_removed (NMSettingsConnection *connection, gpointer user_data)
|
|||
g_object_unref (connection);
|
||||
|
||||
check_startup_complete (self);
|
||||
|
||||
g_object_unref (self); /* Balanced by a ref in claim_connection() */
|
||||
}
|
||||
|
||||
#define NM_DBUS_SERVICE_OPENCONNECT "org.freedesktop.NetworkManager.openconnect"
|
||||
|
|
@ -998,6 +1000,11 @@ claim_connection (NMSettings *self, NMSettingsConnection *connection)
|
|||
_clear_connections_cached_list (priv);
|
||||
|
||||
g_object_ref (connection);
|
||||
/* FIXME(shutdown): The NMSettings instance can't be disposed
|
||||
* while there is any exported connection. Ideally we should
|
||||
* unexport all connections on NMSettings' disposal, but for now
|
||||
* leak @self on termination when there are connections alive. */
|
||||
g_object_ref (self);
|
||||
priv->connections_len++;
|
||||
c_list_link_tail (&priv->connections_lst_head, &connection->_connections_lst);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue