From b2ed01efc981fd3c6a32aac1f29d4e622e2ae305 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Fri, 7 Apr 2023 14:48:49 +0200 Subject: [PATCH] device: stop activation when queueing the unmanaged state When the unmanaged state is queued, we must ensure that the current activation doesn't overwrite the queue stated with a new one. This can happen for example if a dispatcher script or a firewall call terminate, or if the next activation stage is dispatched. Fixes-test: @preserve_master_and_ip_settings https://bugzilla.redhat.com/show_bug.cgi?id=2178269 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1599 (cherry picked from commit 89a8f51235b7cc9c39c2aea8ff717da4e051f8e6) --- src/core/devices/nm-device.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c index 3565c04d59..1f28ec32c9 100644 --- a/src/core/devices/nm-device.c +++ b/src/core/devices/nm-device.c @@ -14542,6 +14542,9 @@ _set_unmanaged_flags(NMDevice *self, if (transition_state) { new_state = was_managed ? NM_DEVICE_STATE_UNMANAGED : NM_DEVICE_STATE_UNAVAILABLE; + if (new_state == NM_DEVICE_STATE_UNMANAGED) { + _cancel_activation(self); + } if (now) nm_device_state_changed(self, new_state, reason); else