mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-27 02:20:12 +01:00
core: prevent the activation of unavailable OVS interfaces only
Preventing the activation of unavailable devices for all device types is too aggresive and leads to race conditions, e.g when a non-virtual bond port gets a carrier, preventing the device to be a good candidate for the connection. Instead, enforce this check only on OVS interfaces as NetworkManager just makes sure that ovsdb->ready is set to TRUE. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2139 Fixes:774badb151('core: prevent the activation of unavailable devices') (cherry picked from commita1c05d2ce6)
This commit is contained in:
parent
8e78a8c28f
commit
b8ef2a551e
1 changed files with 10 additions and 4 deletions
|
|
@ -4699,10 +4699,16 @@ found_better:
|
|||
if (nm_g_hash_table_contains(exclude_devices, device))
|
||||
continue;
|
||||
|
||||
if (!nm_device_is_available(device,
|
||||
for_user_request
|
||||
? NM_DEVICE_CHECK_DEV_AVAILABLE_FOR_USER_REQUEST
|
||||
: NM_DEVICE_CHECK_DEV_AVAILABLE_NONE))
|
||||
/* During startup, NM performs a cleanup of the ovsdb to remove previous entries.
|
||||
* Before the device is suitable for the connection, it must have ovsdb->ready set
|
||||
* to TRUE. Performing this check in all kind of interfaces is too agressive and leads
|
||||
* to race conditions, e.g when a non-virtual bond port gets a carrier, preventing the
|
||||
* device to be a good candidate for the connection. */
|
||||
if (nm_device_get_device_type(device) == NM_DEVICE_TYPE_OVS_INTERFACE
|
||||
&& !nm_device_is_available(device,
|
||||
for_user_request
|
||||
? NM_DEVICE_CHECK_DEV_AVAILABLE_FOR_USER_REQUEST
|
||||
: NM_DEVICE_CHECK_DEV_AVAILABLE_NONE))
|
||||
continue;
|
||||
|
||||
/* determine the priority of this device. Currently, this priority is independent
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue