Reviewed: https://review.openstack.org/261238 Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=a8c715ab0fae82563252e815a12ddeb37ee5cc23 Submitter: Jenkins Branch: master
commit a8c715ab0fae82563252e815a12ddeb37ee5cc23 Author: Kevin Benton <blak...@gmail.com> Date: Thu Dec 24 01:37:10 2015 -0800 Don't call add_ha_port inside a transaction Calling add_ha_port inside a transaction will break the delete_port error recovery logic. This patch prevents the scheduler from doing that. It also adds a note to add_ha_port and a runtime check to prevent the function from working with an active transaction. Change-Id: I39e2bb70527a8ff4a47668f44abb81d0fede3786 Closes-Bug: #1529037 ** Changed in: neutron Status: In Progress => 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/1529037 Title: l3 ha add_ha_port rollback is mostly broken in create_ha_port_and_bind Status in neutron: Fix Released Bug description: create_ha_port_and_bind starts a transaction and then calls add_ha_port. add_ha_port creates a port via the core plugin API and then tries to create a binding. If the binding fails, it tries to delete the port via the core plugin API. However, when called during the transaction in create_ha_port_and_bind, the delete_port call will fail because the transaction will already be in the rolled back state[1]. This failure mode happened to sort of work by accident when running the reference implementation because the DB state would be rolled back the the port would be removed. However, the agents wouldn't be notified and any mechanism drivers that allocated backend resources for the port would not release them. It also resulted in ugly tracebacks. 1. http://paste.openstack.org/show/482652/ To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1529037/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp