When multiple neutron servers are restarted, the update from neutron MariaDB to ovn North database is triggered, and the neutron server generates contention lock, loses lock and reports an error
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
In Progress
|
Medium
|
ZhouHeng |
Bug Description
Multiple neutrron server restart, triggering the update of neutron MariaDB to ovn North database. Because acceleration is asynchronous, when a neutron server obtains OVS IDL lock (ovn_ db_ inconsistencies_ After Periodics), but other neutron server can not get the lock, and update it directly without judging whether to acquire the lock, it will cause an error:
"the transaction failed because the IDL has" will be reported
"been configured to require a database lock "
"but didn't get it yet or has already lost it"
neutron ml2 config:
netron_sync_mode = repair
python ovs version:
2.13.0
leader_only' is set to True (default value) the IDL will only
monitor and transact with the leader of the cluster
Changed in neutron: | |
importance: | Undecided → Medium |
assignee: | nobody → zhangtongjian (zhangtongjian) |
Changed in neutron: | |
status: | New → In Progress |
Changed in neutron: | |
assignee: | nobody → ZhouHeng (zhouhenglc) |
related neutron code: /review. opendev. org/plugins/ gitiles/ openstack/ neutron/ +/refs/ heads/master/ neutron/ plugins/ ml2/drivers/ ovn/mech_ driver/ mech_driver. py#339
https:/
https:/ /review. opendev. org/plugins/ gitiles/ openstack/ neutron/ +/refs/ heads/master/ neutron/ plugins/ ml2/drivers/ ovn/mech_ driver/ ovsdb/maintenan ce.py#139
https:/ /review. opendev. org/plugins/ gitiles/ openstack/ neutron/ +/refs/ heads/master/ neutron/ plugins/ ml2/drivers/ ovn/mech_ driver/ ovsdb/ovn_ db_sync. py#93
ovsdbapp code: /github. com/openstack/ ovsdbapp/ blob/master/ ovsdbapp/ backend/ ovs_idl/ transaction. py#L115
https:/