Updating the fixed_ips field of the metadata_port will make Neutron attempt to lock all the subnets involved regardless of update_metadata_port only changing one subnet or all of them.
I wonder how the OVS driver dealt with this, as it would have the exact same issue.
Perhaps the only option is for Neutron to gracefully ignore a update_metadata_port failure at subnet creation and update the metadata port at a later time in one of its maintenance jobs.
Adding upstream Neutron project to this LP.
The lock contention arises from the update of the metadata_port: /github. com/openstack/ neutron/ blob/24590a334f ff0ed1cb513b0f4 96be965bc9309d4 /neutron/ plugins/ ml2/drivers/ ovn/mech_ driver/ ovsdb/ovn_ client. py#L2111 /github. com/openstack/ neutron/ blob/24590a334f ff0ed1cb513b0f4 96be965bc9309d4 /neutron/ db/ipam_ backend_ mixin.py# L653-L680
https:/
https:/
Updating the fixed_ips field of the metadata_port will make Neutron attempt to lock all the subnets involved regardless of update_ metadata_ port only changing one subnet or all of them.
I wonder how the OVS driver dealt with this, as it would have the exact same issue.
Perhaps the only option is for Neutron to gracefully ignore a update_ metadata_ port failure at subnet creation and update the metadata port at a later time in one of its maintenance jobs.