team: clean up state when connection to teamd fails

If NM fails to connect to teamd, it currently just sets the device
state to FAILED and waits that deactivate() is called later. However,
the 5 seconds timeout on teamd process start can hit in the meantime,
which fails with an assertion "nm_device_is_activating (device)".

Clean up the device state when the connection to teamd fails.

https://bugzilla.redhat.com/show_bug.cgi?id=1697900
(cherry picked from commit c48698d747)
(cherry picked from commit 43571d1013)
This commit is contained in:
Beniamino Galvani 2019-04-09 16:15:46 +02:00
parent 76c283aed9
commit c780befe0c

View file

@ -407,8 +407,10 @@ teamd_dbus_appeared (GDBusConnection *connection,
success = teamd_read_config (device);
if (success)
nm_device_activate_schedule_stage2_device_config (device);
else if (!nm_device_sys_iface_state_is_external_or_assume (device))
else if (!nm_device_sys_iface_state_is_external_or_assume (device)) {
teamd_cleanup (device, TRUE);
nm_device_state_changed (device, NM_DEVICE_STATE_FAILED, NM_DEVICE_STATE_REASON_TEAMD_CONTROL_FAILED);
}
}
}