Public bug reported:

I noticed this when some qemu-nbd processes were hung, and we had file
injection off. I was like WAT.

Here is a backtrace (I added an exception in the nbd code to find out what was 
calling it):
Traceback (most recent call last):
  File "/lib/python2.7/site-packages/oslo/messaging/_executors/base.py", line 
36, in _dispatch
    incoming.reply(self.callback(incoming.ctxt, incoming.message))
  File "/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 
122, in __call__
    return self._dispatch(endpoint, method, ctxt, args)
  File "/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 
92, in _dispatch
    result = getattr(endpoint, method)(ctxt, **new_args)
  File "/lib/python2.7/site-packages/nova/exception.py", line 88, in wrapped
    payload)
  File "/lib/python2.7/site-packages/nova/openstack/common/excutils.py", line 
68, in __exit__
    six.reraise(self.type_, self.value, self.tb)
  File "/lib/python2.7/site-packages/nova/exception.py", line 71, in wrapped
    return f(self, context, *args, **kw)
  File "/lib/python2.7/site-packages/nova/compute/manager.py", line 266, in 
decorated_function
    e, sys.exc_info())
  File "/lib/python2.7/site-packages/nova/openstack/common/excutils.py", line 
68, in __exit__
    six.reraise(self.type_, self.value, self.tb)
  File "/lib/python2.7/site-packages/nova/compute/manager.py", line 253, in 
decorated_function
    return function(self, context, *args, **kwargs)
  File "/lib/python2.7/site-packages/nova/compute/manager.py", line 4169, in 
pre_live_migration
    migrate_data)
  File "/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4349, 
in pre_live_migration
    disk_info)
  File "/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4446, 
in _create_images_and_backing
    size=info['virt_disk_size'])
  File "/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 
180, in cache
    *args, **kwargs)
  File "/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 
330, in create_image
    copy_qcow2_image(base, self.path, size)
  File "/lib/python2.7/site-packages/nova/openstack/common/lockutils.py", line 
249, in inner
    return f(*args, **kwargs)
  File "/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 
296, in copy_qcow2_image
    disk.extend(target, size, use_cow=True)
  File "/lib/python2.7/site-packages/nova/virt/disk/api.py", line 155, in extend
    if not is_image_partitionless(image, use_cow):
  File "/lib/python2.7/site-packages/nova/virt/disk/api.py", line 205, in 
is_image_partitionless
    fs.setup()
  File "/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py", line 82, 
in setup
    self.teardown()
  File "/lib/python2.7/site-packages/nova/openstack/common/excutils.py", line 
68, in __exit__
    six.reraise(self.type_, self.value, self.tb)
  File "/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py", line 76, 
in setup
    if not mount.do_mount():
  File "/lib/python2.7/site-packages/nova/virt/disk/mount/api.py", line 218, in 
do_mount
    status = self.get_dev() and self.map_dev() and self.mnt_dev()
  File "/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py", line 127, in 
get_dev
    return self._get_dev_retry_helper()
  File "/lib/python2.7/site-packages/nova/virt/disk/mount/api.py", line 118, in 
_get_dev_retry_helper
    device = self._inner_get_dev()
  File "/lib/python2.7/site-packages/nova/openstack/common/lockutils.py", line 
249, in inner
    return f(*args, **kwargs)
  File "/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py", line 86, in 
_inner_get_dev
    device = self._allocate_nbd()
  File "/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py", line 63, in 
_allocate_nbd
    raise Exception("FOAD")
Exception: FOAD

** Affects: nova
     Importance: High
         Status: Triaged


** Tags: libvirt

** Description changed:

  AIUI we consider this a) fragile and b) a security risk,thus the bug
  report.
  
  I noticed this when some qemu-nbd processes were hung, and we had file
  injection off. I was like WAT.
  
  Here is a backtrace (I added an exception in the nbd code to find out
  what was calling it):
  
- 2014-02-09 23:19:04.417 4295 ERROR oslo.messaging._executors.base [-] 
Exception during message handling
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base Traceback 
(most recent call last):
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/oslo/messaging/_executors/base.py",
 line 36, in _dispatch
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     
incoming.reply(self.callback(incoming.ctxt, incoming.message))
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py",
 line 122, in __call__
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     return 
self._dispatch(endpoint, method, ctxt, args)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py",
 line 92, in _dispatch
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     result 
= getattr(endpoint, method)(ctxt, **new_args)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/exception.py", 
line 88, in wrapped
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     payload)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/excutils.py",
 line 68, in __exit__
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     
six.reraise(self.type_, self.value, self.tb)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/exception.py", 
line 71, in wrapped
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     return 
f(self, context, *args, **kw)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py",
 line 266, in decorated_function
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     e, 
sys.exc_info())
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/excutils.py",
 line 68, in __exit__
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     
six.reraise(self.type_, self.value, self.tb)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py",
 line 253, in decorated_function
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     return 
function(self, context, *args, **kwargs)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py",
 line 4169, in pre_live_migration
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     
migrate_data)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/driver.py",
 line 4349, in pre_live_migration
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     
disk_info)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/driver.py",
 line 4446, in _create_images_and_backing
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     
size=info['virt_disk_size'])
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py",
 line 180, in cache
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     *args, 
**kwargs)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py",
 line 330, in create_image
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     
copy_qcow2_image(base, self.path, size)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/lockutils.py",
 line 249, in inner
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     return 
f(*args, **kwargs)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py",
 line 296, in copy_qcow2_image
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     
disk.extend(target, size, use_cow=True)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/api.py",
 line 155, in extend
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     if not 
is_image_partitionless(image, use_cow):
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/api.py",
 line 205, in is_image_partitionless
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     
fs.setup()
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py",
 line 82, in setup
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     
self.teardown()
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/excutils.py",
 line 68, in __exit__
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     
six.reraise(self.type_, self.value, self.tb)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py",
 line 76, in setup
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     if not 
mount.do_mount():
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/api.py",
 line 218, in do_mount
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     status 
= self.get_dev() and self.map_dev() and self.mnt_dev()
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py",
 line 127, in get_dev
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     return 
self._get_dev_retry_helper()
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/api.py",
 line 118, in _get_dev_retry_helper
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     device 
= self._inner_get_dev()
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/lockutils.py",
 line 249, in inner
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     return 
f(*args, **kwargs)
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py",
 line 86, in _inner_get_dev
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     device 
= self._allocate_nbd()
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py",
 line 63, in _allocate_nbd
- 2014-02-09 23:19:04.417 4295 TRACE oslo.messaging._executors.base     raise 
Exception("FOAD")
+ Traceback (most recent call last):
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/oslo/messaging/_executors/base.py",
 line 36, in _dispatch
+     incoming.reply(self.callback(incoming.ctxt, incoming.message))
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py",
 line 122, in __call__
+     return self._dispatch(endpoint, method, ctxt, args)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py",
 line 92, in _dispatch
+     result = getattr(endpoint, method)(ctxt, **new_args)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/exception.py", 
line 88, in wrapped
+     payload)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/excutils.py",
 line 68, in __exit__
+     six.reraise(self.type_, self.value, self.tb)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/exception.py", 
line 71, in wrapped
+     return f(self, context, *args, **kw)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py",
 line 266, in decorated_function
+     e, sys.exc_info())
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/excutils.py",
 line 68, in __exit__
+     six.reraise(self.type_, self.value, self.tb)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py",
 line 253, in decorated_function
+     return function(self, context, *args, **kwargs)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py",
 line 4169, in pre_live_migration
+     migrate_data)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/driver.py",
 line 4349, in pre_live_migration
+     disk_info)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/driver.py",
 line 4446, in _create_images_and_backing
+     size=info['virt_disk_size'])
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py",
 line 180, in cache
+     *args, **kwargs)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py",
 line 330, in create_image
+     copy_qcow2_image(base, self.path, size)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/lockutils.py",
 line 249, in inner
+     return f(*args, **kwargs)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py",
 line 296, in copy_qcow2_image
+     disk.extend(target, size, use_cow=True)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/api.py",
 line 155, in extend
+     if not is_image_partitionless(image, use_cow):
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/api.py",
 line 205, in is_image_partitionless
+     fs.setup()
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py",
 line 82, in setup
+     self.teardown()
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/excutils.py",
 line 68, in __exit__
+     six.reraise(self.type_, self.value, self.tb)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py",
 line 76, in setup
+     if not mount.do_mount():
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/api.py",
 line 218, in do_mount
+     status = self.get_dev() and self.map_dev() and self.mnt_dev()
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py",
 line 127, in get_dev
+     return self._get_dev_retry_helper()
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/api.py",
 line 118, in _get_dev_retry_helper
+     device = self._inner_get_dev()
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/lockutils.py",
 line 249, in inner
+     return f(*args, **kwargs)
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py",
 line 86, in _inner_get_dev
+     device = self._allocate_nbd()
+   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py",
 line 63, in _allocate_nbd
+     raise Exception("FOAD")
+ Exception: FOAD

** Description changed:

  AIUI we consider this a) fragile and b) a security risk,thus the bug
  report.
  
  I noticed this when some qemu-nbd processes were hung, and we had file
  injection off. I was like WAT.
  
- Here is a backtrace (I added an exception in the nbd code to find out
- what was calling it):
- 
+ Here is a backtrace (I added an exception in the nbd code to find out what 
was calling it):
  Traceback (most recent call last):
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/oslo/messaging/_executors/base.py",
 line 36, in _dispatch
+   File "/lib/python2.7/site-packages/oslo/messaging/_executors/base.py", line 
36, in _dispatch
      incoming.reply(self.callback(incoming.ctxt, incoming.message))
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py",
 line 122, in __call__
+   File "/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 
122, in __call__
      return self._dispatch(endpoint, method, ctxt, args)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py",
 line 92, in _dispatch
+   File "/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 
92, in _dispatch
      result = getattr(endpoint, method)(ctxt, **new_args)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/exception.py", 
line 88, in wrapped
+   File "/lib/python2.7/site-packages/nova/exception.py", line 88, in wrapped
      payload)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/excutils.py",
 line 68, in __exit__
+   File "/lib/python2.7/site-packages/nova/openstack/common/excutils.py", line 
68, in __exit__
      six.reraise(self.type_, self.value, self.tb)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/exception.py", 
line 71, in wrapped
+   File "/lib/python2.7/site-packages/nova/exception.py", line 71, in wrapped
      return f(self, context, *args, **kw)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py",
 line 266, in decorated_function
+   File "/lib/python2.7/site-packages/nova/compute/manager.py", line 266, in 
decorated_function
      e, sys.exc_info())
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/excutils.py",
 line 68, in __exit__
+   File "/lib/python2.7/site-packages/nova/openstack/common/excutils.py", line 
68, in __exit__
      six.reraise(self.type_, self.value, self.tb)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py",
 line 253, in decorated_function
+   File "/lib/python2.7/site-packages/nova/compute/manager.py", line 253, in 
decorated_function
      return function(self, context, *args, **kwargs)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py",
 line 4169, in pre_live_migration
+   File "/lib/python2.7/site-packages/nova/compute/manager.py", line 4169, in 
pre_live_migration
      migrate_data)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/driver.py",
 line 4349, in pre_live_migration
+   File "/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4349, 
in pre_live_migration
      disk_info)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/driver.py",
 line 4446, in _create_images_and_backing
+   File "/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4446, 
in _create_images_and_backing
      size=info['virt_disk_size'])
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py",
 line 180, in cache
+   File "/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 
180, in cache
      *args, **kwargs)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py",
 line 330, in create_image
+   File "/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 
330, in create_image
      copy_qcow2_image(base, self.path, size)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/lockutils.py",
 line 249, in inner
+   File "/lib/python2.7/site-packages/nova/openstack/common/lockutils.py", 
line 249, in inner
      return f(*args, **kwargs)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py",
 line 296, in copy_qcow2_image
+   File "/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 
296, in copy_qcow2_image
      disk.extend(target, size, use_cow=True)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/api.py",
 line 155, in extend
+   File "/lib/python2.7/site-packages/nova/virt/disk/api.py", line 155, in 
extend
      if not is_image_partitionless(image, use_cow):
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/api.py",
 line 205, in is_image_partitionless
+   File "/lib/python2.7/site-packages/nova/virt/disk/api.py", line 205, in 
is_image_partitionless
      fs.setup()
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py",
 line 82, in setup
+   File "/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py", line 82, 
in setup
      self.teardown()
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/excutils.py",
 line 68, in __exit__
+   File "/lib/python2.7/site-packages/nova/openstack/common/excutils.py", line 
68, in __exit__
      six.reraise(self.type_, self.value, self.tb)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py",
 line 76, in setup
+   File "/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py", line 76, 
in setup
      if not mount.do_mount():
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/api.py",
 line 218, in do_mount
+   File "/lib/python2.7/site-packages/nova/virt/disk/mount/api.py", line 218, 
in do_mount
      status = self.get_dev() and self.map_dev() and self.mnt_dev()
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py",
 line 127, in get_dev
+   File "/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py", line 127, 
in get_dev
      return self._get_dev_retry_helper()
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/api.py",
 line 118, in _get_dev_retry_helper
+   File "/lib/python2.7/site-packages/nova/virt/disk/mount/api.py", line 118, 
in _get_dev_retry_helper
      device = self._inner_get_dev()
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/openstack/common/lockutils.py",
 line 249, in inner
+   File "/lib/python2.7/site-packages/nova/openstack/common/lockutils.py", 
line 249, in inner
      return f(*args, **kwargs)
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py",
 line 86, in _inner_get_dev
+   File "/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py", line 86, 
in _inner_get_dev
      device = self._allocate_nbd()
-   File 
"/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py",
 line 63, in _allocate_nbd
+   File "/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py", line 63, 
in _allocate_nbd
      raise Exception("FOAD")
  Exception: FOAD

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

Title:
  live migration attempts block device and fs resize

Status in OpenStack Compute (Nova):
  Triaged

Bug description:
  I noticed this when some qemu-nbd processes were hung, and we had file
  injection off. I was like WAT.

  Here is a backtrace (I added an exception in the nbd code to find out what 
was calling it):
  Traceback (most recent call last):
    File "/lib/python2.7/site-packages/oslo/messaging/_executors/base.py", line 
36, in _dispatch
      incoming.reply(self.callback(incoming.ctxt, incoming.message))
    File "/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 
122, in __call__
      return self._dispatch(endpoint, method, ctxt, args)
    File "/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 
92, in _dispatch
      result = getattr(endpoint, method)(ctxt, **new_args)
    File "/lib/python2.7/site-packages/nova/exception.py", line 88, in wrapped
      payload)
    File "/lib/python2.7/site-packages/nova/openstack/common/excutils.py", line 
68, in __exit__
      six.reraise(self.type_, self.value, self.tb)
    File "/lib/python2.7/site-packages/nova/exception.py", line 71, in wrapped
      return f(self, context, *args, **kw)
    File "/lib/python2.7/site-packages/nova/compute/manager.py", line 266, in 
decorated_function
      e, sys.exc_info())
    File "/lib/python2.7/site-packages/nova/openstack/common/excutils.py", line 
68, in __exit__
      six.reraise(self.type_, self.value, self.tb)
    File "/lib/python2.7/site-packages/nova/compute/manager.py", line 253, in 
decorated_function
      return function(self, context, *args, **kwargs)
    File "/lib/python2.7/site-packages/nova/compute/manager.py", line 4169, in 
pre_live_migration
      migrate_data)
    File "/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4349, 
in pre_live_migration
      disk_info)
    File "/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4446, 
in _create_images_and_backing
      size=info['virt_disk_size'])
    File "/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 
180, in cache
      *args, **kwargs)
    File "/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 
330, in create_image
      copy_qcow2_image(base, self.path, size)
    File "/lib/python2.7/site-packages/nova/openstack/common/lockutils.py", 
line 249, in inner
      return f(*args, **kwargs)
    File "/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 
296, in copy_qcow2_image
      disk.extend(target, size, use_cow=True)
    File "/lib/python2.7/site-packages/nova/virt/disk/api.py", line 155, in 
extend
      if not is_image_partitionless(image, use_cow):
    File "/lib/python2.7/site-packages/nova/virt/disk/api.py", line 205, in 
is_image_partitionless
      fs.setup()
    File "/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py", line 82, 
in setup
      self.teardown()
    File "/lib/python2.7/site-packages/nova/openstack/common/excutils.py", line 
68, in __exit__
      six.reraise(self.type_, self.value, self.tb)
    File "/lib/python2.7/site-packages/nova/virt/disk/vfs/localfs.py", line 76, 
in setup
      if not mount.do_mount():
    File "/lib/python2.7/site-packages/nova/virt/disk/mount/api.py", line 218, 
in do_mount
      status = self.get_dev() and self.map_dev() and self.mnt_dev()
    File "/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py", line 127, 
in get_dev
      return self._get_dev_retry_helper()
    File "/lib/python2.7/site-packages/nova/virt/disk/mount/api.py", line 118, 
in _get_dev_retry_helper
      device = self._inner_get_dev()
    File "/lib/python2.7/site-packages/nova/openstack/common/lockutils.py", 
line 249, in inner
      return f(*args, **kwargs)
    File "/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py", line 86, 
in _inner_get_dev
      device = self._allocate_nbd()
    File "/lib/python2.7/site-packages/nova/virt/disk/mount/nbd.py", line 63, 
in _allocate_nbd
      raise Exception("FOAD")
  Exception: FOAD

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1278203/+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