← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1278203] [NEW] live migration attempts block device and fs resize

 

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


Follow ups

References