Linuxbrige agent downs with tap device deletion timing issue
Bug #1136264 reported by
Nachi Ueno
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
High
|
Alex Xu |
Bug Description
after get the list of tap devices, the tap device may be deleted.
In this case, pyudev raisees an exception which will crash the linux bridge agent.
https:/
https:/
Changed in quantum: | |
importance: | Undecided → High |
Changed in quantum: | |
milestone: | none → grizzly-rc1 |
Changed in quantum: | |
status: | Fix Committed → Fix Released |
Changed in quantum: | |
milestone: | grizzly-rc1 → 2013.1 |
To post a comment you must log in.
reproduce this by added some fake code in LinuxBridgeMana ger.udev_ get_tap_ devices as below:
def udev_get_ tap_devices( self): IPWrapper( self.root_ helper) veth('tap- test', 'tap-peer-test') list_devices( subsystem= 'net'):
root_ veth.link. delete( )
deleted = True get_name( device) tap_device( name):
devices. add(name)
devices = set()
ip = ip_lib.
root_veth, ns_veth = ip.add_
deleted = False
for device in self.udev.
if not deleted:
name = self.udev_
if self.is_
return devices
Then got exception as below: soulxu/ work-code/ openstack/ quantum/ bin/quantum- linuxbridge- agent", line 24, in <module> soulxu/ work-code/ openstack/ quantum/ quantum/ plugins/ linuxbridge/ agent/linuxbrid ge_quantum_ agent.py" , line 654, in main daemon_ loop() soulxu/ work-code/ openstack/ quantum/ quantum/ plugins/ linuxbridge/ agent/linuxbrid ge_quantum_ agent.py" , line 614, in daemon_loop mgr.update_ devices( devices) soulxu/ work-code/ openstack/ quantum/ quantum/ plugins/ linuxbridge/ agent/linuxbrid ge_quantum_ agent.py" , line 371, in update_devices get_tap_ devices( ) soulxu/ work-code/ openstack/ quantum/ quantum/ plugins/ linuxbridge/ agent/linuxbrid ge_quantum_ agent.py" , line 385, in udev_get_ tap_devices list_devices( subsystem= 'net'): python2. 7/dist- packages/ pyudev/ core.py" , line 404, in __iter__ from_sys_ path(self. context, name) python2. 7/dist- packages/ pyudev/ device. py", line 224, in from_sys_path tPathError( sys_path) tPathError: No device at '/sys/devices/ virtual/ net/tap- peer-test'
2013-03-01 17:05:02.559 15417 TRACE quantum File "/home/
2013-03-01 17:05:02.559 15417 TRACE quantum main()
2013-03-01 17:05:02.559 15417 TRACE quantum File "/home/
2013-03-01 17:05:02.559 15417 TRACE quantum plugin.
2013-03-01 17:05:02.559 15417 TRACE quantum File "/home/
2013-03-01 17:05:02.559 15417 TRACE quantum device_info = self.br_
2013-03-01 17:05:02.559 15417 TRACE quantum File "/home/
2013-03-01 17:05:02.559 15417 TRACE quantum devices = self.udev_
2013-03-01 17:05:02.559 15417 TRACE quantum File "/home/
2013-03-01 17:05:02.559 15417 TRACE quantum for device in self.udev.
2013-03-01 17:05:02.559 15417 TRACE quantum File "/usr/lib/
2013-03-01 17:05:02.559 15417 TRACE quantum yield Device.
2013-03-01 17:05:02.559 15417 TRACE quantum File "/usr/lib/
2013-03-01 17:05:02.559 15417 TRACE quantum raise DeviceNotFoundA
2013-03-01 17:05:02.559 15417 TRACE quantum DeviceNotFoundA
Is this bug same as you said?