← Back to team overview

yahoo-eng-team team mailing list archive

[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