Bug 1166033

Summary: rbd libvirt driver fails
Product: Red Hat OpenStack Reporter: Yogev Rabl <yrabl>
Component: openstack-novaAssignee: Pádraig Brady <pbrady>
Status: CLOSED NEXTRELEASE QA Contact: Ami Jeain <ajeain>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 5.0 (RHEL 7)CC: berrange, dasmith, ndipanov, pbrady, sbauza, sferdjao, sgordon, vromanso, yeylon
Target Milestone: z3Keywords: ZStream
Target Release: 5.0 (RHEL 7)   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: openstack-nova-2014.1.3-9.el6ost openstack-nova-2014.1.3-9.el7ost Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-11-20 14:51:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1062022, 1111743    

Description Yogev Rabl 2014-11-20 10:12:54 UTC
Description of problem:

The nova rbd libvirt driver fails with the following trace:

2014-11-20 11:43:57.327 24448 ERROR nova.openstack.common.threadgroup [-] global name 'self' is not defined
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup Traceback (most recent call last):
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/openstack/common/threadgroup.py", line 117, in wait
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup x.wait()
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/openstack/common/threadgroup.py", line 49, in wait
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup return self.thread.wait()
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 168, in wait
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup return self._exit_event.wait()
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/eventlet/event.py", line 116, in wait
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup return hubs.get_hub().switch()
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 187, in switch
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup return self.greenlet.switch()
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 194, in main
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup result = function(*args, **kwargs)
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/openstack/common/service.py", line 486, in run_service
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup service.start()
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/service.py", line 180, in start
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup self.manager.pre_start_hook()
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1063, in pre_start_hook
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup self.update_available_resource(nova.context.get_admin_context())
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 5524, in update_available_resource
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup nodenames = set(self.driver.get_available_nodes())
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/virt/driver.py", line 1169, in get_available_nodes
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup stats = self.get_host_stats(refresh=refresh)
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4961, in get_host_stats
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup return self.host_state.get_host_stats(refresh=refresh)
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 441, in host_state
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup self._host_state = HostState(self)
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5355, in __init__
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup self.update_status()
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5386, in update_status
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup disk_info_dict = self.driver.get_local_gb_info()
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3892, in get_local_gb_info
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup info = self._get_rbd_driver().get_pool_info()
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup NameError: global name 'self' is not defined
2014-11-20 11:43:57.327 24448 TRACE nova.openstack.common.threadgroup

The nova configuration file is set with:
rbd_user = cinder
rbd_secret_uuid = <generated uuid>

And in the libvirt section:
images_type=rbd
images_rbd_pool=vms
images_rbd_ceph_conf=/etc/ceph/ceph.conf

The Nova version is:

python-nova-2014.1.3-8.el7ost.noarch
openstack-nova-novncproxy-2014.1.3-8.el7ost.noarch
openstack-nova-console-2014.1.3-8.el7ost.noarch
openstack-nova-api-2014.1.3-8.el7ost.noarch
openstack-nova-conductor-2014.1.3-8.el7ost.noarch
openstack-nova-cert-2014.1.3-8.el7ost.noarch
python-novaclient-2.17.0-2.el7ost.noarch
openstack-nova-compute-2014.1.3-8.el7ost.noarch
openstack-nova-common-2014.1.3-8.el7ost.noarch
openstack-nova-scheduler-2014.1.3-8.el7ost.noarch

the libvirt version is:
libvirt-daemon-driver-qemu-1.1.1-29.el7_0.3.x86_64
libvirt-daemon-config-nwfilter-1.1.1-29.el7_0.3.x86_64
libvirt-daemon-driver-nwfilter-1.1.1-29.el7_0.3.x86_64
libvirt-client-1.1.1-29.el7_0.3.x86_64
libvirt-daemon-1.1.1-29.el7_0.3.x86_64
libvirt-daemon-driver-nodedev-1.1.1-29.el7_0.3.x86_64
libvirt-daemon-kvm-1.1.1-29.el7_0.3.x86_64
libvirt-1.1.1-29.el7_0.3.x86_64
libvirt-python-1.1.1-29.el7_0.3.x86_64
libvirt-daemon-driver-network-1.1.1-29.el7_0.3.x86_64
libvirt-daemon-driver-interface-1.1.1-29.el7_0.3.x86_64
libvirt-daemon-driver-lxc-1.1.1-29.el7_0.3.x86_64
libvirt-daemon-driver-storage-1.1.1-29.el7_0.3.x86_64
libvirt-daemon-driver-secret-1.1.1-29.el7_0.3.x86_64
libvirt-daemon-config-network-1.1.1-29.el7_0.3.x86_64

Comment 2 Yogev Rabl 2014-11-20 14:28:07 UTC
this bug has been verified.

Comment 3 Pádraig Brady 2014-11-20 14:51:25 UTC
Closing this now that it's verified, so it no longer blocks bug 1111743 which is tracking this code for the release