EMC-POC: Nexus VLAN plugin: With Neutron multiple workers enabled (> 8), intermittent failure in deleting VM
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
networking-cisco |
New
|
Undecided
|
Unassigned |
Bug Description
Neutron multiple workers are enabled as follows in neutron.conf:
- api_workers=48
- rpc_workers=48
Relay is aslo enabled.
The following are configured:
- 20 tenants
- Each tenant had 5 tenant networks
- For each network, one VM at each Compute nodes (2) for a total of 10 VMs
- Total 100 VLANs/200 VMs
A script which does the following at tenant-1:
- Delete all 10 VMs in one single CLI command
- For each network, launch 2 VMs (one at each Compute node)
- Repeat steps 1 – 2
Intermittently the VM(s) fail to be deleted and result in ERROR state.
Note that the ml2 and nexus port database entires are not deleted.
User has to delete the VM(s) again to completely remove the VM(s).
In /var/log/messages, the following traceback is seen:
Jul 16 15:20:45 bxb-ds-46 neutron-server: Traceback (most recent call last):
Jul 16 15:20:45 bxb-ds-46 neutron-server: File "/usr/lib/
Jul 16 15:20:45 bxb-ds-46 neutron-server: func(*args, **kwargs)
Jul 16 15:20:45 bxb-ds-46 neutron-server: File "/usr/lib/
Jul 16 15:20:45 bxb-ds-46 neutron-server: proto._
Jul 16 15:20:45 bxb-ds-46 neutron-server: File "/usr/lib64/
Jul 16 15:20:45 bxb-ds-46 neutron-server: self.handle()
Jul 16 15:20:45 bxb-ds-46 neutron-server: File "/usr/lib64/
Jul 16 15:20:45 bxb-ds-46 neutron-server: self.handle_
Jul 16 15:20:45 bxb-ds-46 neutron-server: File "/usr/lib/
Jul 16 15:20:45 bxb-ds-46 neutron-server: self.raw_
Jul 16 15:20:45 bxb-ds-46 neutron-server: File "/usr/lib64/
Jul 16 15:20:45 bxb-ds-46 neutron-server: data = self._sock.
Jul 16 15:20:45 bxb-ds-46 neutron-server: File "/usr/lib/
Jul 16 15:20:45 bxb-ds-46 neutron-server: timeout_
Jul 16 15:20:45 bxb-ds-46 neutron-server: File "/usr/lib/
Jul 16 15:20:45 bxb-ds-46 neutron-server: mark_as_
Jul 16 15:20:45 bxb-ds-46 neutron-server: File "/usr/lib/
Jul 16 15:20:45 bxb-ds-46 neutron-server: listener = hub.add(hub.READ, fileno, current.switch, current.throw, mark_as_closed)
Jul 16 15:20:45 bxb-ds-46 neutron-server: File "/usr/lib/
Jul 16 15:20:45 bxb-ds-46 neutron-server: listener = BaseHub.add(self, evtype, fileno, cb, tb, mac)
Jul 16 15:20:45 bxb-ds-46 neutron-server: File "/usr/lib/
Jul 16 15:20:45 bxb-ds-46 neutron-server: evtype, fileno, evtype, cb, bucket[fileno]))
Jul 16 15:20:45 bxb-ds-46 neutron-server: RuntimeError: Second simultaneous read on fileno 13 detected. Unless you really know what you're doing, make sure that only
one greenthread can read any particular socket. Consider using a pools.Pool. If you do know what you're doing and want to disable this error, call eventlet.debug.hu
b_prevent_
witch of greenlet.greenlet object at 0x4e35cd0>, <built-in method throw of greenlet.greenlet object at 0x4e35cd0>)
Not sure if this is related to the failure because this traceback is also logged when the test is passing, e.g. delete one VM in one CLI command and put a 1 second delay between each delete.