yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #86559
[Bug 1930448] Re: 'VolumeNotFound' exception is not handled
Reviewed: https://review.opendev.org/c/openstack/nova/+/794006
Committed: https://opendev.org/openstack/nova/commit/9cdecc81fb8729160693c244d8adf124eed8b9b2
Submitter: "Zuul (22348)"
Branch: master
commit 9cdecc81fb8729160693c244d8adf124eed8b9b2
Author: Stephen Finucane <stephenfin@xxxxxxxxxx>
Date: Tue Jun 1 17:21:58 2021 +0100
api: Handle invalid volume UUIDs during spawn
If a user requests an invalid volume UUID when creating an instance,
a 'VolumeNotFound' exception will be raised. This is not currently
handled. Correct this.
Change-Id: I6137dc1b6b51321fee1c080bf4b85197b19bf223
Signed-off-by: Stephen Finucane <stephenfin@xxxxxxxxxx>
Closes-Bug: #1930448
** Changed in: nova
Status: In Progress => 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/1930448
Title:
'VolumeNotFound' exception is not handled
Status in OpenStack Compute (nova):
Fix Released
Bug description:
Attempting to attach an additional volume (i.e. not boot from volume)
using an invalid ID currently results in a HTTP 500 error. This error
should be handled and a HTTP 4xx error returned instead.
$ openstack server create \
--flavor m1.tiny --image cirros-0.5.1-x86_64-disk --network private \
--block-device source_type=volume,uuid=44d317a3-6183-4063-868b-aa0728576f5f,destination_type=volume,delete_on_termination=true \
--wait test-server
Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
<class 'nova.exception.VolumeNotFound'> (HTTP 500) (Request-ID: req-7fe03627-c4ce-4f4b-9d5c-3abd6b88d3e3)
where '44d317a3-6183-4063-868b-aa0728576f5f' is not an UUID
corresponding to a valid volume.
A full traceback from nova-compute is provided below.
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi [None req-7fe03627-c4ce-4f4b-9d5c-3abd6b88d3e3 demo admin] Unexpected exception in API method: nova.exception.VolumeNotFound: Volume 44d317a3-6183-4063-868b-aa0728576f5f could not be found.
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi Traceback (most recent call last):
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/volume/cinder.py", line 432, in wrapper
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi res = method(self, ctx, volume_id, *args, **kwargs)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/volume/cinder.py", line 498, in get
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi item = cinderclient(
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/usr/local/lib/python3.8/dist-packages/cinderclient/v2/volumes.py", line 281, in get
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi return self._get("/volumes/%s" % volume_id, "volume")
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/usr/local/lib/python3.8/dist-packages/cinderclient/base.py", line 293, in _get
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi resp, body = self.api.client.get(url)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/usr/local/lib/python3.8/dist-packages/cinderclient/client.py", line 215, in get
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi return self._cs_request(url, 'GET', **kwargs)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/usr/local/lib/python3.8/dist-packages/cinderclient/client.py", line 206, in _cs_request
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi return self.request(url, method, **kwargs)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/usr/local/lib/python3.8/dist-packages/cinderclient/client.py", line 192, in request
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi raise exceptions.from_response(resp, body)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi cinderclient.exceptions.NotFound: Volume 44d317a3-6183-4063-868b-aa0728576f5f could not be found. (HTTP 404) (Request-ID: req-9fcc1abe-1212-45f5-ac76-60fdecd22506)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi During handling of the above exception, another exception occurred:
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi Traceback (most recent call last):
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 658, in wrapped
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi return f(*args, **kwargs)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/validation/__init__.py", line 110, in wrapper
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi return func(*args, **kwargs)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/validation/__init__.py", line 110, in wrapper
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi return func(*args, **kwargs)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/validation/__init__.py", line 110, in wrapper
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi return func(*args, **kwargs)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi [Previous line repeated 9 more times]
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/api/openstack/compute/servers.py", line 689, in create
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi (instances, resv_id) = self.compute_api.create(context,
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/compute/api.py", line 2032, in create
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi return self._create_instance(
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/compute/api.py", line 1534, in _create_instance
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi instances_to_build = self._provision_instances(
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/compute/api.py", line 1256, in _provision_instances
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi volumes = self._get_volumes_for_bdms(context, block_device_mapping)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/compute/api.py", line 1142, in _get_volumes_for_bdms
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi volumes[bdm.volume_id] = self.volume_api.get(
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/volume/cinder.py", line 396, in wrapper
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi res = method(self, ctx, *args, **kwargs)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/volume/cinder.py", line 434, in wrapper
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi _reraise(exception.VolumeNotFound(volume_id=volume_id))
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/volume/cinder.py", line 482, in _reraise
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi raise desired_exc.with_traceback(sys.exc_info()[2])
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/volume/cinder.py", line 432, in wrapper
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi res = method(self, ctx, volume_id, *args, **kwargs)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/opt/stack/nova/nova/volume/cinder.py", line 498, in get
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi item = cinderclient(
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/usr/local/lib/python3.8/dist-packages/cinderclient/v2/volumes.py", line 281, in get
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi return self._get("/volumes/%s" % volume_id, "volume")
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/usr/local/lib/python3.8/dist-packages/cinderclient/base.py", line 293, in _get
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi resp, body = self.api.client.get(url)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/usr/local/lib/python3.8/dist-packages/cinderclient/client.py", line 215, in get
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi return self._cs_request(url, 'GET', **kwargs)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/usr/local/lib/python3.8/dist-packages/cinderclient/client.py", line 206, in _cs_request
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi return self.request(url, method, **kwargs)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi File "/usr/local/lib/python3.8/dist-packages/cinderclient/client.py", line 192, in request
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi raise exceptions.from_response(resp, body)
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi nova.exception.VolumeNotFound: Volume 44d317a3-6183-4063-868b-aa0728576f5f could not be found.
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: ERROR nova.api.openstack.wsgi
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: INFO nova.api.openstack.wsgi [None req-7fe03627-c4ce-4f4b-9d5c-3abd6b88d3e3 demo admin] HTTP exception thrown: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: <class 'nova.exception.VolumeNotFound'>
Jun 01 15:05:14 devstack-ubuntu2004 devstack@n-api.service[1658]: DEBUG nova.api.openstack.wsgi [None req-7fe03627-c4ce-4f4b-9d5c-3abd6b88d3e3 demo admin] Returning 500 to user: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1930448/+subscriptions
References