policy: assert that the auto-activate list is empty on dispose
We are currently asserting that the list of devices waiting for
auto-activation in NMPolicy is not empty. This condition is always
false because:
- NMDevice holds a reference to NMManager
- NMManager holds a reference to NMPolicy
- on dispose, NMDevice asserts that it's not in NMPolicy's
auto-activate list
Therefore if there is any NMDevice alive, NMPolicy must be alive as
well. Instead, if there is no NMDevice alive the list must be empty.
The assertion could fail only when the NMPolicy instance gets
disposed, which usually doesn't happen because it's still referenced
at shutdown.
Fixes: aede228974
('core: assert that devices are not registered when disposing NMPolicy')
This commit is contained in:
@@ -2934,7 +2934,7 @@ dispose(GObject *object)
|
||||
NMPolicy *self = NM_POLICY(object);
|
||||
NMPolicyPrivate *priv = NM_POLICY_GET_PRIVATE(self);
|
||||
|
||||
nm_assert(!c_list_is_empty(&priv->policy_auto_activate_lst_head));
|
||||
nm_assert(c_list_is_empty(&priv->policy_auto_activate_lst_head));
|
||||
nm_assert(g_hash_table_size(priv->devices) == 0);
|
||||
|
||||
nm_clear_g_object(&priv->default_ac4);
|
||||
|
Reference in New Issue
Block a user