BigSwitch plugin generates unnecessary errors on 404 from controller

Bug #1200023 reported by Kevin Benton
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Medium
Kevin Benton
Grizzly
Fix Released
Medium
Gary Kotton

Bug Description

There are certain times when a 404 error from the backend controller can be safely ignored.

For example, on the _unplug_interface call, remote rest exceptions aren't raised any further because they are expected to generate 404 errors if the network has already been deleted.
https://github.com/openstack/neutron/blob/ee3fe4e836ca1c81e50a8324a9b5f982de4fa97f/neutron/plugins/bigswitch/plugin.py#L300

Even though these are ignored by not raising the exception further, it causes errors in the logs and marks a controller as failed, causing the failover logic to send the same request to every backend controller until they are all marked as failed, ultimately generating even more errors.

This condition is exacerbated by bug 1197627, which is a race condition that frequently causes double port delete and unplug requests.

Tags: bigswitch
Changed in neutron:
assignee: nobody → Kevin Benton (blak111)
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/36586

Changed in neutron:
status: New → In Progress
Changed in neutron:
importance: Undecided → Medium
milestone: none → havana-2
tags: added: bigswitch
tags: added: grizzly-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/36586
Committed: http://github.com/openstack/neutron/commit/5b4ef2a513bc7c8d2a2eecb57f656bf42bb0dd52
Submitter: Jenkins
Branch: master

commit 5b4ef2a513bc7c8d2a2eecb57f656bf42bb0dd52
Author: Kevin Benton <email address hidden>
Date: Wed Jul 10 16:49:31 2013 -0700

    Add option to ignore backend HTTP error in BigSwitch plugin

    This patch fixes the way the BigSwitch plugin ignores 404
    errors from the backend controller by allowing HTTP codes
    to be selectively ignored on REST calls. This prevents
    unnecessary exception handling and failover logic in calls
    where 404 codes are acceptable.

    Change-Id: Ia1118c039af3b45d96fb3f8a5fb5d3febdf50f4f
    Fixes: bug #1200023

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

Fix proposed to branch: stable/grizzly
Review: https://review.openstack.org/37121

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

Reviewed: https://review.openstack.org/37121
Committed: http://github.com/openstack/neutron/commit/f78b744c51be295f54d0ea5e6c4758e364350fd3
Submitter: Jenkins
Branch: stable/grizzly

commit f78b744c51be295f54d0ea5e6c4758e364350fd3
Author: Kevin Benton <email address hidden>
Date: Wed Jul 10 16:49:31 2013 -0700

    Add option to ignore backend HTTP error in BigSwitch plugin

    This patch fixes the way the BigSwitch plugin ignores 404
    errors from the backend controller by allowing HTTP codes
    to be selectively ignored on REST calls. This prevents
    unnecessary exception handling and failover logic in calls
    where 404 codes are acceptable.

    Fixes: bug #1200023

    (cherry picked from commit 5b4ef2a513bc7c8d2a2eecb57f656bf42bb0dd52)
    Change-Id: Ia1118c039af3b45d96fb3f8a5fb5d3febdf50f4f

tags: added: in-stable-grizzly
Thierry Carrez (ttx)
Changed in neutron:
status: Fix Committed → Fix Released
Alan Pevec (apevec)
tags: removed: grizzly-backport-potential in-stable-grizzly
Thierry Carrez (ttx)
Changed in neutron:
milestone: havana-2 → 2013.2
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.