Optimization in DHCP notifier introduced a race condition

Bug #1714655 reported by Kevin Benton
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
High
Kevin Benton

Bug Description

Change I948132924ec5021a9db78cf17efbba96b2500e8e introduced a race condition where a neutron port can be updated without altering any fields visible in the dict other than the revision number (e.g. binding levels). The port update itself unconditionally places the provisioning block so a port can get blocked waiting for the DHCP agent when the DHCP agent hasn't been notified.

Changed in neutron:
importance: Undecided → High
assignee: nobody → Kevin Benton (kevinbenton)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/500269

Changed in neutron:
status: New → In Progress
tags: added: fullstack
tags: added: gate-failure
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

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

commit 8f3c27cd853d9e4d029939cbd8b371bf880c2cae
Author: Kevin Benton <email address hidden>
Date: Sat Sep 2 02:58:48 2017 -0700

    DHCP provisioning block only on port addr update

    Don't add a DHCP provisioning block during port updates
    unless the IP address or MAC address has changed. There is
    no point in waiting on the DHCP agent after a port update
    unless the addresses have changed. We already wait on the
    DHCP agent after the port has been initially created so
    we will be guaranteed that a reservation exists for the
    correct MAC/IP in the DHCP agent.

    Closes-Bug: #1714655
    Change-Id: Idef5994e274ea99260367edb8331fd10b98a1432

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/pike)

Fix proposed to branch: stable/pike
Review: https://review.openstack.org/501060

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/ocata)

Fix proposed to branch: stable/ocata
Review: https://review.openstack.org/501061

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/newton)

Fix proposed to branch: stable/newton
Review: https://review.openstack.org/501063

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/pike)

Reviewed: https://review.openstack.org/501060
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=e508092c11e3c195833bc01efe01cd574e7a816f
Submitter: Jenkins
Branch: stable/pike

commit e508092c11e3c195833bc01efe01cd574e7a816f
Author: Kevin Benton <email address hidden>
Date: Sat Sep 2 02:58:48 2017 -0700

    DHCP provisioning block only on port addr update

    Don't add a DHCP provisioning block during port updates
    unless the IP address or MAC address has changed. There is
    no point in waiting on the DHCP agent after a port update
    unless the addresses have changed. We already wait on the
    DHCP agent after the port has been initially created so
    we will be guaranteed that a reservation exists for the
    correct MAC/IP in the DHCP agent.

    Closes-Bug: #1714655
    Change-Id: Idef5994e274ea99260367edb8331fd10b98a1432
    (cherry picked from commit 8f3c27cd853d9e4d029939cbd8b371bf880c2cae)

tags: added: in-stable-pike
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/ocata)

Reviewed: https://review.openstack.org/501061
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=412bbb08dc16c76bea9cdc590f7d4e0da68131f8
Submitter: Jenkins
Branch: stable/ocata

commit 412bbb08dc16c76bea9cdc590f7d4e0da68131f8
Author: Kevin Benton <email address hidden>
Date: Sat Sep 2 02:58:48 2017 -0700

    DHCP provisioning block only on port addr update

    Don't add a DHCP provisioning block during port updates
    unless the IP address or MAC address has changed. There is
    no point in waiting on the DHCP agent after a port update
    unless the addresses have changed. We already wait on the
    DHCP agent after the port has been initially created so
    we will be guaranteed that a reservation exists for the
    correct MAC/IP in the DHCP agent.

    Closes-Bug: #1714655
    Change-Id: Idef5994e274ea99260367edb8331fd10b98a1432
    (cherry picked from commit 8f3c27cd853d9e4d029939cbd8b371bf880c2cae)

tags: added: in-stable-ocata
tags: added: in-stable-newton
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/newton)

Reviewed: https://review.openstack.org/501063
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=680a34d7584f64ce0495313a889e0cdc509430df
Submitter: Jenkins
Branch: stable/newton

commit 680a34d7584f64ce0495313a889e0cdc509430df
Author: Kevin Benton <email address hidden>
Date: Sat Sep 2 02:58:48 2017 -0700

    DHCP provisioning block only on port addr update

    Don't add a DHCP provisioning block during port updates
    unless the IP address or MAC address has changed. There is
    no point in waiting on the DHCP agent after a port update
    unless the addresses have changed. We already wait on the
    DHCP agent after the port has been initially created so
    we will be guaranteed that a reservation exists for the
    correct MAC/IP in the DHCP agent.

    Closes-Bug: #1714655
    Change-Id: Idef5994e274ea99260367edb8331fd10b98a1432
    (cherry picked from commit 8f3c27cd853d9e4d029939cbd8b371bf880c2cae)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 10.0.4

This issue was fixed in the openstack/neutron 10.0.4 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 11.0.1

This issue was fixed in the openstack/neutron 11.0.1 release.

tags: added: neutron-proactive-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 12.0.0.0b1

This issue was fixed in the openstack/neutron 12.0.0.0b1 development milestone.

tags: removed: neutron-proactive-backport-potential
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.