ML2 delete_port operation currently involves locking ports
and bindings tables which may lead to DBDeadlock errors in certain
cases when several ports are deleted concurrently.
That may happen due to specifics of Galera working in active-active
mode: it may throw deadlock errors when it fails to validate
a change with other members of the cluster.
The fix adds retries to delete port operation to overcome such
deadlocks
Reviewed: https:/ /review. openstack. org/231985 /git.openstack. org/cgit/ openstack/ neutron/ commit/ ?id=f0bb982bfc8 1bb7c5bafde1430 c51bea8f8ab9c9
Committed: https:/
Submitter: Jenkins
Branch: stable/juno
commit f0bb982bfc81bb7 c5bafde1430c51b ea8f8ab9c9
Author: Oleg Bondarev <email address hidden>
Date: Wed May 6 12:50:11 2015 +0300
Wrap ML2 delete_port with db retry decorator
ML2 delete_port operation currently involves locking ports
and bindings tables which may lead to DBDeadlock errors in certain
cases when several ports are deleted concurrently.
That may happen due to specifics of Galera working in active-active
mode: it may throw deadlock errors when it fails to validate
a change with other members of the cluster.
The fix adds retries to delete port operation to overcome such
deadlocks
Conflicts:
neutron/ plugins/ ml2/plugin. py
neutron/ tests/unit/ ml2/test_ ml2_plugin. py
Closes-Bug: #1422504 70d74314c3c9185 7dc709b2d9b c63b8ce2cd78b04 755d0aba64) 481d65b8d5bee1e 3a4becbbc5)
Change-Id: I684691d59c5ac3
(cherry picked from commit 45ea2cf10033e12
(cherry picked from commit 151b28cf1ce697f