Fixed in master in
https://review.opendev.org/c/openstack/nova/+/807025
** Changed in: nova
Status: New => 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/2007864
Title:
Error nova.exception.VolumeNotFound appears when trying to extend
attached volume
Status in OpenStack Compute (nova):
Fix Released
Bug description:
Openstack version: Xena. May have same behaviour in master as code
looks like the same
Error appears when we try to extend volume after volume was migrated
to ceph beckend. Migration is performed by "change volume type" (in
Horizon) or "cinder retype" (in CLI) for attached to running VM cinder
volume.
Main condition is os-vol-mig-status-attr:name_id is set for volume. It
is performed utomatically during migration to ceph beckend (or to NFS
backend - at least using standard NFS driver -
cinder.volume.drivers.nfs.NfsDriver)
Steps to reproduce:
1. Create VM
2. Create additional cinder volume on source backend
(I tried on NFS, but I think it could be any backend defferent from
destination ceph backend. I suppose it could even be other backend on the same
ceph cluster - say other pool with other disk type. E.g. if destination ceph
beckend is on SSD pool, source backend could be on the same ceph cluster, but
on HDD pool. Main thing is that after migration to destination ceph backend
property os-vol-mig-status-attr:name_id is set.)
3. Attach created on p.2 volume to VM
4. Issue "change volume type" (in Horizon) or "cinder retype" (in CLI) and
provide volume type for destination ceph backend.
5. After migration is finished, check that os-vol-mig-status-attr:name_id is
set to volume ID
6. Try to extend volume using "extend volume" context menu on created in p.2
volume in Horizon. Volume will be extended, but on hypervisor where VM from p.1
is hosted error message will appear in nova-compute.log:
2023-02-20 10:26:27.581 6 INFO nova.compute.manager
[req-8eb07f8e-2d68-4521-93cc-94f40007f134 884a8cceeadc4bb1b47455fc9d05f6ac
3e3e26b5910e482a97d188c840114d8f - default default] [instance:
169ab8a2-ad38-49ab-b8f4-14217b709fbb] Cinder extended volume
5a11fb14-6bc5-4c3f-914c-567012c74b01; extending it to detect new size
2023-02-20 10:26:27.633 6 WARNING nova.compute.manager
[req-8eb07f8e-2d68-4521-93cc-94f40007f134 884a8cceeadc4bb1b47455fc9d05f6ac
3e3e26b5910e482a97d188c840114d8f - default default] [instance:
169ab8a2-ad38-49ab-b8f4-14217b709fbb] Extend volume failed,
volume_id=5a11fb14-6bc5-4c3f-914c-567012c74b01, reason: Volume
584eba48-0baf-4a80-8b8d-ddd6ac6266e6 could not be found.:
nova.exception.VolumeNotFound: Volume 584eba48-0baf-4a80-8b8d-ddd6ac6266e6
could not be found.
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server
[req-8eb07f8e-2d68-4521-93cc-94f40007f134 884a8cceeadc4bb1b47455fc9d05f6ac
3e3e26b5910e482a97d188c840114d8f - default default] Exception during message
handling: nova.exception.VolumeNotFound: Volume
584eba48-0baf-4a80-8b8d-ddd6ac6266e6 could not be found.
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server Traceback (most
recent call last):
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/oslo_messaging/rpc/server.py",
line 165, in _process_incoming
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server res =
self.dispatcher.dispatch(message)
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/oslo_messaging/rpc/dispatcher.py",
line 309, in dispatch
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server return
self._do_dispatch(endpoint, method, ctxt, args)
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/oslo_messaging/rpc/dispatcher.py",
line 229, in _do_dispatch
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server result =
func(ctxt, **new_args)
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/nova/exception_wrapper.py",
line 71, in wrapped
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server
_emit_versioned_exception_notification(
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/oslo_utils/excutils.py", line
227, in __exit__
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server
self.force_reraise()
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/oslo_utils/excutils.py", line
200, in force_reraise
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server raise self.value
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/nova/exception_wrapper.py",
line 63, in wrapped
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server return f(self,
context, *args, **kw)
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/nova/compute/manager.py", line
10581, in external_instance_event
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server
self.extend_volume(context, instance, event.tag)
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/nova/compute/utils.py", line
1433, in decorated_function
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server return
function(self, context, *args, **kwargs)
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/nova/compute/manager.py", line
211, in decorated_function
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server
compute_utils.add_instance_fault_from_exc(context,
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/oslo_utils/excutils.py", line
227, in __exit__
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server
self.force_reraise()
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/oslo_utils/excutils.py", line
200, in force_reraise
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server raise self.value
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/nova/compute/manager.py", line
200, in decorated_function
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server return
function(self, context, *args, **kwargs)
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/nova/compute/manager.py", line
10438, in extend_volume
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server
self.driver.extend_volume(context, connection_info, instance,
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server File
"/var/lib/kolla/venv/lib/python3.8/site-packages/nova/virt/libvirt/driver.py",
line 2705, in extend_volume
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server raise
exception.VolumeNotFound(volume_id=volume_id)
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server
nova.exception.VolumeNotFound: Volume 584eba48-0baf-4a80-8b8d-ddd6ac6266e6
could not be found.
2023-02-20 10:26:27.654 6 ERROR oslo_messaging.rpc.server
Looks like error happens here:
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L2822
Migrated volume has the following connection_info:
{'driver_volume_type': 'rbd', 'data': {'name':
'volumes/volume-584eba48-0baf-4a80-8b8d-ddd6ac6266e6',
'hosts': ['x.x.x.x', 'x.x.x.x', 'x.x.x.x'], 'ports': ['6789', '6789',
'6789'], 'cluster_name': 'ceph', 'auth_enabled': True, 'auth_username':
'cinder',
'secret_type': 'ceph', 'secret_uuid': 'xxx', 'volume_id':
'584eba48-0baf-4a80-8b8d-ddd6ac6266e6', 'discard': True, 'qos_specs': None,
'access_mode': 'rw',
'encrypted': False, 'cacheable': False}, 'status': 'reserved', 'instance':
'169ab8a2-ad38-49ab-b8f4-14217b709fbb', 'attached_at': '', 'detached_at': '',
'volume_id': '584eba48-0baf-4a80-8b8d-ddd6ac6266e6',
'serial': '5a11fb14-6bc5-4c3f-914c-567012c74b01'}
Volume serial number is the same as it was before migration (it is the
same in xml either), but volume_id in connection_info is new one and
it is equal to id in os-vol-mig-status-attr:name_id field of the
volume.
So serial number for volume, returned by guest.get_all_disks() doesn't
mach volume_id and it cause an exeption raise
exception.VolumeNotFound(volume_id=volume_id) as disk variable is set
to None
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/2007864/+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