yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #13288
[Bug 1303827] [NEW] nova boot ends in error state when using nova-network VlanManager
Public bug reported:
Steps to reproduce:
- Setup a devstack from scratch using nova-network
- delete the default network
# nova-manage network delete 10.0.0.0/24
- change nova.conf to use VlanManager:
network_manager = nova.network.manager.VlanManager
- restart nova-network
- create a new network with a vlan id:
nova-manage network create --label=network --fixed_range_v4 10.0.1.0/24 --vlan 42
- boot a vm on the cirros image:
nova --debug boot --flavor 1 --image 0b969819-2d85-4f7f-af76-125c5bb5789f test
Expected behavior: The new VM goes to Active state
Actual behavior: The new VM goes to Error state, also nova-network log has this exception:
a7-abaf-78db50a4b62c] network allocations from (pid=13676) allocate_for_instance /opt/stack/nova/nova/network/manager.py:494
2014-04-07 15:32:02.137 ERROR nova.network [req-87a65a9e-9196-4203-9de2-f6911d2aef4b admin demo] No db access allowed in nova-network: File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 194, in main
result = function(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 128, in <lambda>
yield lambda: self._dispatch_and_reply(incoming)
File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 133, in _dispatch_and_reply
incoming.message))
File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 176, in _dispatch
return self._do_dispatch(endpoint, method, ctxt, args)
File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 122, in _do_dispatch
result = getattr(endpoint, method)(ctxt, **new_args)
File "/opt/stack/nova/nova/network/floating_ips.py", line 119, in allocate_for_instance
**kwargs)
File "/opt/stack/nova/nova/network/manager.py", line 497, in allocate_for_instance
requested_networks=requested_networks)
File "/opt/stack/nova/nova/network/manager.py", line 1837, in _get_networks_for_instance
networks = self.db.project_get_networks(context, project_id)
File "/opt/stack/nova/nova/db/api.py", line 1370, in project_get_networks
return IMPL.project_get_networks(context, project_id, associate)
File "/opt/stack/nova/nova/cmd/network.py", line 47, in __call__
stacktrace = "".join(traceback.format_stack())
I think the exception was introduced by this patch that disables direct
database access from nova-network:
https://review.openstack.org/#/c/79716/
However, VlanManager still relies on database access for the given scenario, and there are 3 other places in manager.py that rely on direct db access:
devuser@ubuntu:/opt/stack/nova$ grep self.db nova/network/manager.py -n
1389: vifs = self.db.virtual_interface_get_by_instance(context,
1446: vif = self.db.virtual_interface_get_by_address(context,
1837: networks = self.db.project_get_networks(context, project_id)
1914: not self.db.network_in_use_on_host(context, network['id'],
Therefore, I cannot currently use conductor with nova-network
VlanManager, which is a regression from Havana.
** Affects: nova
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1303827
Title:
nova boot ends in error state when using nova-network VlanManager
Status in OpenStack Compute (Nova):
New
Bug description:
Steps to reproduce:
- Setup a devstack from scratch using nova-network
- delete the default network
# nova-manage network delete 10.0.0.0/24
- change nova.conf to use VlanManager:
network_manager = nova.network.manager.VlanManager
- restart nova-network
- create a new network with a vlan id:
nova-manage network create --label=network --fixed_range_v4 10.0.1.0/24 --vlan 42
- boot a vm on the cirros image:
nova --debug boot --flavor 1 --image 0b969819-2d85-4f7f-af76-125c5bb5789f test
Expected behavior: The new VM goes to Active state
Actual behavior: The new VM goes to Error state, also nova-network log has this exception:
a7-abaf-78db50a4b62c] network allocations from (pid=13676) allocate_for_instance /opt/stack/nova/nova/network/manager.py:494
2014-04-07 15:32:02.137 ERROR nova.network [req-87a65a9e-9196-4203-9de2-f6911d2aef4b admin demo] No db access allowed in nova-network: File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 194, in main
result = function(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 128, in <lambda>
yield lambda: self._dispatch_and_reply(incoming)
File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 133, in _dispatch_and_reply
incoming.message))
File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 176, in _dispatch
return self._do_dispatch(endpoint, method, ctxt, args)
File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 122, in _do_dispatch
result = getattr(endpoint, method)(ctxt, **new_args)
File "/opt/stack/nova/nova/network/floating_ips.py", line 119, in allocate_for_instance
**kwargs)
File "/opt/stack/nova/nova/network/manager.py", line 497, in allocate_for_instance
requested_networks=requested_networks)
File "/opt/stack/nova/nova/network/manager.py", line 1837, in _get_networks_for_instance
networks = self.db.project_get_networks(context, project_id)
File "/opt/stack/nova/nova/db/api.py", line 1370, in project_get_networks
return IMPL.project_get_networks(context, project_id, associate)
File "/opt/stack/nova/nova/cmd/network.py", line 47, in __call__
stacktrace = "".join(traceback.format_stack())
I think the exception was introduced by this patch that disables
direct database access from nova-network:
https://review.openstack.org/#/c/79716/
However, VlanManager still relies on database access for the given scenario, and there are 3 other places in manager.py that rely on direct db access:
devuser@ubuntu:/opt/stack/nova$ grep self.db nova/network/manager.py -n
1389: vifs = self.db.virtual_interface_get_by_instance(context,
1446: vif = self.db.virtual_interface_get_by_address(context,
1837: networks = self.db.project_get_networks(context, project_id)
1914: not self.db.network_in_use_on_host(context, network['id'],
Therefore, I cannot currently use conductor with nova-network
VlanManager, which is a regression from Havana.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1303827/+subscriptions
Follow ups
References