Move _process_l3_delete out of the delete_network
transaction to eliminate the semaphore deadlock that
occurs when it tries to delete the ports associated
with existing floating IPs.
It makes more sense to live outside of the transaction
anyway because the operations it performs cannot be
rolled back only in the database if the L3 plugin makes
external calls for floating IP creation/deletion.
e.g. if delete_floatingip is successful, it may have
deleted external resources and restoring the DB records
would make things inconsistent.
If a failure to delete the network does occur, any cleanup
done by _process_l3_delete will not be reversed.
Reviewed: https:/ /review. openstack. org/124975 /git.openstack. org/cgit/ openstack/ neutron/ commit/ ?id=36e8cbb34e7 8ff367cb501b8c4 94d9a02228251d
Committed: https:/
Submitter: Jenkins
Branch: master
commit 36e8cbb34e78ff3 67cb501b8c494d9 a02228251d
Author: Kevin Benton <email address hidden>
Date: Mon Sep 29 20:21:23 2014 -0700
ML2: move L3 cleanup out of network transaction
Move _process_l3_delete out of the delete_network
transaction to eliminate the semaphore deadlock that
occurs when it tries to delete the ports associated
with existing floating IPs.
It makes more sense to live outside of the transaction
anyway because the operations it performs cannot be
rolled back only in the database if the L3 plugin makes
external calls for floating IP creation/deletion.
e.g. if delete_floatingip is successful, it may have
deleted external resources and restoring the DB records
would make things inconsistent.
If a failure to delete the network does occur, any cleanup
done by _process_l3_delete will not be reversed.
Closes-Bug: #1374573 dcef94f48f13f1b de1e4106a80
Change-Id: I3ae7bb269df9b9