[qa][fuel-devops] Environment creation fails: 'libvirt: error : Unable to create tap device virnet0: Device or resource busy'
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Fuel for OpenStack |
Fix Committed
|
High
|
Anton Studenov |
Bug Description
fuel-devops 3.0 (master branch)
Environment (master node) creation fails with the following error:
=======
ERROR: Create environment and set up master node
-------
Traceback (most recent call last):
File "/home/
compatabili
File "/home/
func()
File "/home/
func(
File "/home/
result = func(*args, **kwargs)
File "/home/
self.
File "/home/
self.
File "/home/
group.
File "/home/
node.start()
File "/home/
self.create()
File "/home/
return func(*args, **kwargs)
File "/home/
self.
File "/home/
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: Unable to create tap device virnet0: Device or resource busy
fuel-devops tries to use 'virnet0' device name, but it's already used by another environment.
The problem is here:
For net_virnet* device listCaps() returns an empty list:
>>> c
<libvirt.
>>> print c.XMLDesc()
<device>
<name>
<path>
<parent>
<capability type='net'>
<interface>
<address>
<capability type='80203'/>
</capability>
</device>
>>> c.listCaps()
[]
>>> env.nodes(
['virbr0', 'virbr1', 'virbr2', 'virbr3', 'virbr4', 'virbr5', 'virbr6', 'virbr7', 'virbr8', 'virbr9', 'virbr10']
After commenting those lines everything works fine:
http://
>>> env.nodes(
['eno1', 'eno2', 'lo', 'virbr1-nic', 'virbr2-nic', 'virbr3-nic', 'virbr4-nic', 'virbr5-nic', 'virnet0', 'virbr6-nic', 'virbr7-nic', 'virbr8-nic', 'virbr9-nic', 'virbr10-nic', 'virbr0', 'virbr1', 'virbr2', 'virbr3', 'virbr4', 'virbr5', 'virbr6', 'virbr7', 'virbr8', 'virbr9', 'virbr10']
Changed in fuel: | |
status: | New → Confirmed |
Changed in fuel: | |
status: | Fix Committed → In Progress |
Changed in fuel: | |
status: | In Progress → Fix Committed |
Fuel-devops 3.0 requires libvirt >=1.2.3. With libvirt 1.2.2 there is impossible
to run more than one environment at the same time because of conflicting names of
network interfaces (virnet*). It is fixed on libvirt >=1.2.3 , but will require
to re-create already existing environments.
Duplicate of https:/ /bugs.launchpad .net/fuel/ +bug/1586385