With l2pop enabled, race exists in delete_port_postcommit
when both create/update_port and delete_port deal with
different ports on the same host, where such ports are
either the first (or) last on same network for that host.
This race happens outside the DB locking zones in
the respective methods of ML2 plugin.
To fix this, we have moved determination of
fdb_entries back to delete_port_postcommit and removed
delete_port_precommit altogether from l2pop mechanism
driver. In order to accomodate dvr interfaces, we
are storing and re-using the mechanism-driver context
which hold dvr-port-binding information while
invoking delete_port_postcommit. We loop through
dvr interface bindings invoking delete_port_postcommit
similar to delete_port_precommit.
Closes-Bug: #1372438
Change-Id: If0502f57382441fdb4510c81a89794f57a38e696
(cherry picked from commit 3cd2163d5105faad389bee5175ef446f0bb90289)
Reviewed: https:/ /review. openstack. org/129166 /git.openstack. org/cgit/ openstack/ neutron/ commit/ ?id=4a84be59db1 23df8618e5c0d06 14c8a927e68196
Committed: https:/
Submitter: Jenkins
Branch: stable/juno
commit 4a84be59db123df 8618e5c0d0614c8 a927e68196
Author: Vivekanandan Narasimhan <email address hidden>
Date: Tue Sep 23 02:25:16 2014 -0700
Race for l2pop when ports go up/down on same host
With l2pop enabled, race exists in delete_ port_postcommit
when both create/update_port and delete_port deal with
different ports on the same host, where such ports are
either the first (or) last on same network for that host.
This race happens outside the DB locking zones in
the respective methods of ML2 plugin.
To fix this, we have moved determination of port_postcommit and removed port_precommit altogether from l2pop mechanism port_postcommit . We loop through port_postcommit port_precommit.
fdb_entries back to delete_
delete_
driver. In order to accomodate dvr interfaces, we
are storing and re-using the mechanism-driver context
which hold dvr-port-binding information while
invoking delete_
dvr interface bindings invoking delete_
similar to delete_
Closes-Bug: #1372438 fdb4510c81a8979 4f57a38e696 d389bee5175ef44 6f0bb90289)
Change-Id: If0502f57382441
(cherry picked from commit 3cd2163d5105faa