[openstack-dev] Is volume attachment to an LXC instance is broken?
Vishvananda Ishaya
vishvananda at gmail.com
Tue Sep 4 20:01:02 UTC 2012
This looks like a recent bug. Lxc may not be setting root_device_path in the block device mapping table. It is now using root_device_path to set the path for the volumes. We may need to supply a fallback if it isn't set.
Vish
On Sep 4, 2012, at 11:00 AM, David Kang <dkang at isi.edu> wrote:
>
> Is volume attachment to an LXC instance is broken?
>
> I'm trying to run the following command:
> $ euca-attach-volume vol-00000007 -i i-0000000b -d /dev/vdc
>
> It fails and the nova-compute log is copied and pasted below.
> The error message is :
> "InvalidDevicePath: The supplied device path (/dev/a) is invalid."
> The device name given is "/dev/vdc", but it looks like that get_device_name_for_instance()
> changes it to '/dev/a'.
> And it ends up the error of "InvalidDevicePath".
>
> Is it bug or my mistake?
> I pulled the nova from github on August 29th.
> And the followings are configured in /etc/nova/nova.conf file.
> use_cow_images=True
> libvirt_type=lxc
>
> Thanks,
> David
>
> ------------- log of nova-compute ---------------
>
> 2012-09-04 13:37:46 DEBUG nova.utils [req-79250a0b-6c11-4afc-a0a4-75736d3853c5 admin admin] Got semaphore "f3fb4350-a72e-404f-a21f-10f333fe67e8" for method "do_reserve"... from (pid=13108) inner /usr/local/nova/nova/utils.py:712
> 2012-09-04 13:37:46 DEBUG nova.utils [req-79250a0b-6c11-4afc-a0a4-75736d3853c5 admin admin] Attempting to grab semaphore "compute_resources" for method "update_load_stats_for_instance"... from (pid=13108) inner /usr/local/nova/nova/utils.py:708
> 2012-09-04 13:37:46 DEBUG nova.utils [req-79250a0b-6c11-4afc-a0a4-75736d3853c5 admin admin] Got semaphore "compute_resources" for method "update_load_stats_for_instance"... from (pid=13108) inner /usr/local/nova/nova/utils.py:712
> 2012-09-04 13:37:46 ERROR nova.openstack.common.rpc.amqp [-] Exception during message handling
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp Traceback (most recent call last):
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/openstack/common/rpc/amqp.py", line 275, in _process_data
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp rval = self.proxy.dispatch(ctxt, version, method, **args)
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/openstack/common/rpc/dispatcher.py", line 145, in dispatch
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs)
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/exception.py", line 117, in wrapped
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp temp_level, payload)
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp self.gen.next()
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/exception.py", line 92, in wrapped
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp return f(*args, **kw)
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/compute/manager.py", line 211, in decorated_function
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp pass
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp self.gen.next()
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/compute/manager.py", line 204, in decorated_function
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp return function(self, context, *args, **kwargs)
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/compute/manager.py", line 237, in decorated_function
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp instance_uuid, e, sys.exc_info())
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp self.gen.next()
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/compute/manager.py", line 226, in decorated_function
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp return function(self, context, *args, **kwargs)
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/compute/manager.py", line 2057, in reserve_block_device_name
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp return do_reserve()
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/utils.py", line 733, in inner
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp retval = f(*args, **kwargs)
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/compute/manager.py", line 2051, in do_reserve
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp device)
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp File "/usr/local/nova/nova/compute/utils.py", line 56, in get_device_name_for_instance
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp raise exception.InvalidDevicePath(path=mappings['root'])
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp InvalidDevicePath: The supplied device path (/dev/a) is invalid.
> 2012-09-04 13:37:46 TRACE nova.openstack.common.rpc.amqp
> 2012-09-04 13:37:46 ERROR nova.openstack.common.rpc.common [-] Returning exception The supplied device path (/dev/a) is invalid. to caller
> 2012-09-04 13:37:46 ERROR nova.openstack.common.rpc.common [-] ['Traceback (most recent call last):\n', ' File "/usr/local/nova/nova/openstack/common/rpc/amqp.py", line 275, in _process_data\n rval = self.proxy.dispatch(ctxt, version, method, **args)\n', ' File "/usr/local/nova/nova/openstack/common/rpc/dispatcher.py", line 145, in dispatch\n return getattr(proxyobj, method)(ctxt, **kwargs)\n', ' File "/usr/local/nova/nova/exception.py", line 117, in wrapped\n temp_level, payload)\n', ' File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__\n self.gen.next()\n', ' File "/usr/local/nova/nova/exception.py", line 92, in wrapped\n return f(*args, **kw)\n', ' File "/usr/local/nova/nova/compute/manager.py", line 211, in decorated_function\n pass\n', ' File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__\n self.gen.next()\n', ' File "/usr/local/nova/nova/compute/manager.py", line 204, in decorated_function\n return function(self, context, *args, **kwargs)\n', ' File "/usr/local/nova/nova/compute/manager.py", line 237, in decorated_function\n instance_uuid, e, sys.exc_info())\n', ' File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__\n self.gen.next()\n', ' File "/usr/local/nova/nova/compute/manager.py", line 226, in decorated_function\n return function(self, context, *args, **kwargs)\n', ' File "/usr/local/nova/nova/compute/manager.py", line 2057, in reserve_block_device_name\n return do_reserve()\n', ' File "/usr/local/nova/nova/utils.py", line 733, in inner\n retval = f(*args, **kwargs)\n', ' File "/usr/local/nova/nova/compute/manager.py", line 2051, in do_reserve\n device)\n', ' File "/usr/local/nova/nova/compute/utils.py", line 56, in get_device_name_for_instance\n raise exception.InvalidDevicePath(path=mappings[\'root\'])\n', 'InvalidDevicePath: The supplied device path (/dev/a) is invalid.\n']
>
>
>
> ----------------------
> Dr. Dong-In "David" Kang
> Computer Scientist
> USC/ISI
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
More information about the OpenStack-dev
mailing list