Comment 5 for bug 1276391

Reviewed: https://review.openstack.org/82945
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=b1677dcb80ce8b83aadb2180efad3527a96bd3bc
Submitter: Jenkins
Branch: master

commit b1677dcb80ce8b83aadb2180efad3527a96bd3bc
Author: Robert Kukura <email address hidden>
Date: Tue Mar 11 21:54:35 2014 -0400

    ML2: Bind ports outside transactions

    The ML2 plugin now calls the bind_port() operation on the registered
    mechanism drivers outside of any enclosing DB transaction. Ports are
    created or updated in one transaction, then a binding is established
    if possible, and finally a second transaction commits the binding
    result.

    With [re]binding moved outside the DB transaction that triggered it,
    it is now possible that multiple threads or processes will
    concurrently try to bind the same port, or that the port will be
    updated between transactions. Concurrent attempts to bind the same
    port are allowed to proceed, which results are used is resolved in the
    second transaction, and binding is retried if necessary.

    Improvements to the Cisco Nexus driver and unit tests from Rich Curran
    needed due to the binding changes are also included.

    Closes-Bug: 1276391
    Closes-Bug: 1335226
    Change-Id: I65dafc330d6e812dad0667d2383858504d0ba299