yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #04757
[Bug 1215823] Re: BigSwitch transactional consistency issues
** Changed in: neutron
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1215823
Title:
BigSwitch transactional consistency issues
Status in OpenStack Neutron (virtual network service):
Fix Released
Bug description:
There have been several observed issues with consistency between the
controller's view of the network and the BigSwitch plugin's view of
the network when there is a communication failure between the
controller and the plugin during a state-changing operation.
The BigSwitch plugin currently does not utilize the fact that
sqlalchemy will rollback database changes in a session when an
exception is thrown. There are many try-except statements with db
changes in the try, and the mirror changes in the except when there is
a network controller. This logic becomes very complex when multiple
controller calls are required for an operation since any could fail
and require partial rollbacks.
An example problem is here where the subnet deletion from the db isn't rolled back:
https://github.com/openstack/neutron/blob/71f2184c617123b90f8e911056f23e3346c7c592/neutron/plugins/bigswitch/plugin.py#L857
This can come for free with starting a subtransaction above the delete subnet.
Using sqlalchemy subtransactions would eliminate a large portion of
the complex try except logic and eliminate a few of the consistency
issues in failure scenarios.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1215823/+subscriptions