Cannot attach volume to a livecd based vm instance

Bug #1300250 reported by Dawid
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Opinion
Wishlist
Unassigned

Bug Description

It is impossible to attach volume to a LiveCD based vm instance. I managed to do this finally by hacking the nova database accordig to: http://paste.openstack.org/show/48247/

Part of log with a problem:

k/nova/nova/openstack/common/lockutils.py:252
2014-03-31 13:29:44.117 ERROR nova.virt.block_device [req-2cfd1b0b-610f-40a0-8ed4-97ecd6128beb biocloud_psnc biocloud] [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] Driver failed to atta
ch volume 1a046bbe-a326-4dbe-9f05-e3f2fa40a4e7 at /dev/hda
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] Traceback (most recent call last):
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/virt/block_device.py", line 239, in attach
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] device_type=self['device_type'], encryption=encryption)
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 1246, in attach_volume
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] disk_dev)
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/openstack/common/excutils.py", line 68, in __exit__
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] six.reraise(self.type_, self.value, self.tb)
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 1233, in attach_volume
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] virt_dom.attachDeviceFlags(conf.to_xml(), flags)
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 179, in d
oit
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] result = proxy_call(self._autowrap, f, *args, **kwargs)
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 139, in p
roxy_call
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] rv = execute(f,*args,**kwargs)
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 77, in tw
orker
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] rv = meth(*args,**kwargs)
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/usr/lib/python2.7/dist-packages/libvirt.py", line 420, in attachDeviceFl
ags
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] if ret == -1: raise libvirtError ('virDomainAttachDeviceFlags() failed', dom=
self)
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] libvirtError: invalid argument: target hda already exists.
2014-03-31 13:29:44.117 21366 TRACE nova.virt.block_device [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9]
2014-03-31 13:29:44.162 DEBUG nova.volume.cinder [req-2cfd1b0b-610f-40a0-8ed4-97ecd6128beb biocloud_psnc biocloud] Cinderclient connection created using URL: http://biocloud.vph.psnc.pl:877
6/v1/8e4b75100b0d42faa562c1b8f06984cf cinderclient /opt/stack/nova/nova/volume/cinder.py:93
2014-03-31 13:29:44.167 21366 INFO requests.packages.urllib3.connectionpool [-] Starting new HTTP connection (1): biocloud.vph.psnc.pl
2014-03-31 13:29:44.940 21366 DEBUG requests.packages.urllib3.connectionpool [-] "POST /v1/8e4b75100b0d42faa562c1b8f06984cf/volumes/1a046bbe-a326-4dbe-9f05-e3f2fa40a4e7/action HTTP/1.1" 202
 0 _make_request /usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py:344
2014-03-31 13:29:44.942 ERROR nova.compute.manager [req-2cfd1b0b-610f-40a0-8ed4-97ecd6128beb biocloud_psnc biocloud] [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] Failed to attach 1a046b
be-a326-4dbe-9f05-e3f2fa40a4e7 at /dev/hda
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] Traceback (most recent call last):
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/compute/manager.py", line 4135, in _attach_volume
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] do_check_attach=False, do_driver_attach=True)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/virt/block_device.py", line 44, in wrapped
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] ret_val = method(obj, context, *args, **kwargs)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/virt/block_device.py", line 248, in attach
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] connector)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/openstack/common/excutils.py", line 68, in __exit__
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] six.reraise(self.type_, self.value, self.tb)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/virt/block_device.py", line 239, in attach
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] device_type=self['device_type'], encryption=encryption)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 1246, in attach_volume
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] disk_dev)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/openstack/common/excutils.py", line 68, in __exit__
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] six.reraise(self.type_, self.value, self.tb)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 1233, in attach_volume
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] virt_dom.attachDeviceFlags(conf.to_xml(), flags)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 179, in doi
t
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] result = proxy_call(self._autowrap, f, *args, **kwargs)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 139, in pro
xy_call
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] rv = execute(f,*args,**kwargs)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 77, in twor
ker
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] rv = meth(*args,**kwargs)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] File "/usr/lib/python2.7/dist-packages/libvirt.py", line 420, in attachDeviceFlag
s
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] if ret == -1: raise libvirtError ('virDomainAttachDeviceFlags() failed', dom=se
lf)
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9] libvirtError: invalid argument: target hda already exists.
2014-03-31 13:29:44.942 21366 TRACE nova.compute.manager [instance: 5a1c854d-5571-4d0e-8414-ae60f57571d9]

Tags: volumes
Revision history for this message
Sean Severson (sseverson) wrote :

I ran into this after creating an instance using a flavor that uses a disk size >0GB. The Ubuntu image I was booting from was unable to detect the LVM volume, so I attempted to attach a volume created in Cinder. Similar error was encountered.

2014-04-01 14:36:37.587 ERROR nova.virt.block_device [req-6eabe794-e84f-428d-8671-bbfb505824bf admin admin] [instance: ee14ebeb-df07-46f9-8bbd-0c2684e69e9b] Driver failed to attach volume 51ad3748-4bf4-4dbc-ad8c-ed6eb67e395e at /dev/hda

Allison Randal (allison)
tags: added: volumes
Sean Dague (sdague)
Changed in nova:
status: New → Opinion
importance: Undecided → Wishlist
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.