← Back to team overview

yahoo-eng-team team mailing list archive

[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