** Description changed:

+ [Impact]
+ 
+     There are edge cases when the DHCP agent attempts to unplug an interface
+     and the device does not exist. This patch ensures that the agent can
+     tolerate this case.
+ 
+ [Test Case]
+ 
+     * create subnet with dhcp enabled
+     * set pdb.set_trace() in neutron.agent.linux.dhcp.DeviceManager.destroy()
+     * manually delete ns-<id> device in tenant namespace
+     * pdb continue and should not raise any error
+ 
+ [Regression Potential]
+ 
+     None
+ 
  2015-09-22 01:23:42.612 ERROR neutron.agent.dhcp.agent [-] Unable to disable 
dhcp for c543db4d-e077-488f-b58c-5805f63f86b6.
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent Traceback (most recent 
call last):
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent   File 
"/opt/stack/neutron/neutron/agent/dhcp/agent.py", line 115, in call_driver
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent     getattr(driver, 
action)(**action_kwargs)
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent   File 
"/opt/stack/neutron/neutron/agent/linux/dhcp.py", line 221, in disable
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent     
self._destroy_namespace_and_port()
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent   File 
"/opt/stack/neutron/neutron/agent/linux/dhcp.py", line 226, in 
_destroy_namespace_and_port
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent     
self.device_manager.destroy(self.network, self.interface_name)
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent   File 
"/opt/stack/neutron/neutron/agent/linux/dhcp.py", line 1223, in destroy
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent     
self.driver.unplug(device_name, namespace=network.namespace)
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent   File 
"/opt/stack/neutron/neutron/agent/linux/interface.py", line 358, in unplug
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent     tap_name = 
self._get_tap_name(device_name, prefix)
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent   File 
"/opt/stack/neutron/neutron/agent/linux/interface.py", line 299, in 
_get_tap_name
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent     dev_name = 
dev_name.replace(prefix or self.DEV_NAME_PREFIX,
  2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent AttributeError: 
'NoneType' object has no attribute 'replace'
- 2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent 
+ 2015-09-22 01:23:42.612 TRACE neutron.agent.dhcp.agent
  2015-09-22 01:23:42.616 INFO neutron.agent.dhcp.agent [-] Synchronizing state 
complete
  
  The reason is the device is None

** Summary changed:

- DHCP agent: interface unplug leads to exception
+ [SRU] DHCP agent: interface unplug leads to exception

** Patch added: "lp1498370.debdiff"
   
https://bugs.launchpad.net/ubuntu/vivid/+source/neutron/+bug/1498370/+attachment/4516815/+files/lp1498370.debdiff

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to neutron in Ubuntu.
https://bugs.launchpad.net/bugs/1498370

Title:
  [SRU] DHCP agent: interface unplug leads to exception

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1498370/+subscriptions

-- 
Ubuntu-server-bugs mailing list
Ubuntu-server-bugs@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs

Reply via email to