** Changed in: nova/ocata
       Status: Fix Committed => Fix Released

-- 
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/1672792

Title:
  Nova with ceph backend instance creation fails with: the name of the
  pool must be a string

Status in OpenStack Compute (nova):
  Fix Released
Status in OpenStack Compute (nova) ocata series:
  Fix Released

Bug description:
  Situation: Ocata (RDO), Nova configured with ceph backend as follows:

  [libvirt]
  images_type = rbd
  images_rbd_pool = nova
  images_rbd_ceph_conf = /etc/ceph/ceph.conf
  rbd_user = nova_cinder
  rbd_secret_uuid = <uuid>

  When launching an image backed instance (so not backed by a cinder
  volume), instance creation fails with: 'the name of the pool must be a
  string'.

  After some digging I found that in: /usr/lib/python2.7/site-
  packages/nova/virt/libvirt/storage/rbd_utils.py in _connect_to_rados
  in the call ioctx = client.open_ioctx(pool_to_open)

  pool_to_open is passed as unicode and in /usr/lib/python2.7/site-
  packages/rados.py a check is done which fails if ioctx_name is not a
  string.

  Easy fix seems to be to do a cast to string in _connect_to_rados:

  ioctx = client.open_ioctx(str(pool_to_open))

  This fixes the issue for me.

  Creating an instance with a ceph backed volume is not affected by this
  issue, this works fine.

  Versions:

  openstack-nova-compute-15.0.0-1.el7.noarch
  python-nova-15.0.0-1.el7.noarch
  python-rados-0.94.10-0.el7.x86_64

  Stacktrace:

  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager 
[req-90b9607f-01e9-4586-a083-c4f2051294ff - - - - -] [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359] Instance failed to spawn                  
                                                                                
                                      │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359] Traceback (most recent call last):        
                                                                                
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2125, in 
_build_resources                                                                
                                                    │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     yield resources                       
                                                                                
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1930, in 
_build_and_run_instance                                                         
                                                    │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     block_device_info=block_device_info)  
                                                                                
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2676, in 
spawn                                                                           
                                                │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     block_device_info=block_device_info)  
                                                                                
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3081, in 
_create_image                                                                   
                                                │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     fallback_from_host)                   
                                                                                
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3197, in 
_create_and_inject_local_root                                                   
                                                │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     instance, size, fallback_from_host)   
                                                                                
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 6758, in 
_try_fetch_image_cache                                                          
                                                │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     size=size)                            
                                                                                
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 227, 
in cache                                                                        
                                              │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     *args, **kwargs)                      
                                                                                
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 858, 
in create_image                                                                 
                                              │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     prepare_template(target=base, *args, 
**kwargs)                                                                       
                                                                                
            │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 271, in 
inner                                                                           
                                               │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     return f(*args, **kwargs)             
                                                                                
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 223, 
in fetch_func_sync                                                              
                                              │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     fetch_func(target=target, *args, 
**kwargs)                                                                       
                                                                                
                │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3189, in 
clone_fallback_to_fetch                                                         
                                                │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     backend.clone(context, 
disk_images['image_id'])                                                        
                                                                                
                          │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 892, 
in clone                                                                        
                                              │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     if self.driver.is_cloneable(location, 
image_meta):                                                                    
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/storage/rbd_utils.py", line 
235, in is_cloneable                                                            
                                              │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     return self.exists(image, pool=pool, 
snapshot=snapshot)                                                              
                                                                                
            │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/storage/rbd_utils.py", line 
309, in exists                                                                  
                                              │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     read_only=True):                      
                                                                                
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/storage/rbd_utils.py", line 
70, in __init__                                                                 
                                              │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     client, ioctx = 
driver._connect_to_rados(pool)                                                  
                                                                                
                                 │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/storage/rbd_utils.py", line 
149, in _connect_to_rados                                                       
                                              │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     ioctx = 
client.open_ioctx(pool_to_open)                                                 
                                                                                
                                         │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]   File 
"/usr/lib/python2.7/site-packages/rados.py", line 662, in open_ioctx            
                                                                                
                                              │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359]     raise TypeError('the name of the pool 
must be a string')                                                              
                                                                                
           │
  2017-03-14 15:48:33.480 6668 ERROR nova.compute.manager [instance: 
87145bc6-61fc-4068-a135-fccfd8aed359] TypeError: the name of the pool must be a 
string

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1672792/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to