database exception causes UnboundLocalError in linuxbridge-agent

Bug #1311971 reported by Li Ma
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Medium
Li Ma

Bug Description

When database exception raises in update_device_down, the linuxbridge-agent doesn't deal with them in a proper way that causes accessing not-existed local variables.

2014-04-22 20:35:53.436 494 TRACE neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent Traceback (most recent call last):
2014-04-22 20:35:53.436 494 TRACE neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent File "/usr/lib/python2.6/site-packages/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py", line 997, in daemon_loop
2014-04-22 20:35:53.436 494 TRACE neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent sync = self.process_network_devices(device_info)
2014-04-22 20:35:53.436 494 TRACE neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent File "/usr/lib/python2.6/site-packages/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py", line 894, in process_network_devices
2014-04-22 20:35:53.436 494 TRACE neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent resync_b = self.treat_devices_removed(device_info['removed'])
2014-04-22 20:35:53.436 494 TRACE neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent File "/usr/lib/python2.6/site-packages/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py", line 963, in treat_devices_removed
2014-04-22 20:35:53.436 494 TRACE neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent if details['exists']:
2014-04-22 20:35:53.436 494 TRACE neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent UnboundLocalError: local variable 'details' referenced before assignment
2014-04-22 20:35:53.436 494 TRACE neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent
2014-04-22 20:35:53.437 494 DEBUG neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent [req-ffc712fc-80af-4837-a068-6e1a076e4ebc None] Loop iteration exceeded interval (2 vs. 51.2715768814)! daemon_loop /usr/lib/python2.6/site-packages/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py:1011
2014-04-22 20:35:53.438 494 INFO neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent [req-ffc712fc-80af-4837-a068-6e1a076e4ebc None] Agent out of sync with plugin!

Tags: linuxbridge
Li Ma (nick-ma-z)
Changed in neutron:
assignee: nobody → Li Ma (nick-ma-z)
Li Ma (nick-ma-z)
description: updated
summary: - database exception causes UnboundLocalError in linuxbridge-agent
+ database error causes UnboundLocalError in linuxbridge-agent
summary: - database error causes UnboundLocalError in linuxbridge-agent
+ none value causes UnboundLocalError in linuxbridge-agent
summary: - none value causes UnboundLocalError in linuxbridge-agent
+ database exception causes UnboundLocalError in linuxbridge-agent
description: updated
Revision history for this message
Openstack Gerrit (openstack-gerrit) wrote : Fix proposed to neutron (master)

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

Changed in neutron:
status: New → In Progress
Changed in neutron:
importance: Undecided → Medium
milestone: none → juno-1
tags: added: linuxbridge
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

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

commit 4539ff26d903174c844d6571533dfe719195e107
Author: Li Ma <email address hidden>
Date: Fri Apr 25 00:37:46 2014 -0700

    Database exception causes UnboundLocalError in linuxbridge-agent

    When database exception raises from update_device_down,
    the linuxbridge-agent doesn't deal with them in a proper way
    that causes accessing not-existed local variables.

    A straightforward workaround is to set it as None by default
    and verify its value then.

    Change-Id: I32a9467876a619a7d0ad53ff3d5d95ff977e54f4
    Closes-Bug: #1311971

Changed in neutron:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in neutron:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in neutron:
milestone: juno-1 → 2014.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.