[Bug 2095364] Re: List server API v2.96 returns 500 if there is missing request spec object
OpenStack Infra
2095364 at bugs.launchpad.net
Fri Aug 15 06:12:01 UTC 2025
Reviewed: https://review.opendev.org/c/openstack/nova/+/955305
Committed: https://opendev.org/openstack/nova/commit/64594ec320ee23f243d5396411d6c156a257d169
Submitter: "Zuul (22348)"
Branch: stable/2024.1
commit 64594ec320ee23f243d5396411d6c156a257d169
Author: Masahito Muroi <masahito.muroi at linecorp.com>
Date: Tue Jan 21 09:57:40 2025 +0900
Use dict object for request_specs_dict in the _list_view
The request_specs_dict in the _list_view is initialized as a
defaultdict object in order to return empty string as default.
But the request_spec_dict is replaced with a normal dict object in
the v2.96 microversion, then if server list and RequestSpec missmatch
happens by any reason, the List Server API and the List
Server Detail API hit 500 Internal server error because of key error.
This commit updates the req_spec_dict to use normal dict object, then
it returns sentinel object if there is no appropriate
request_spec object.
Conflicts:
nova/api/openstack/compute/views/servers.py
NOTE(Wesley Hershberger): Conflicts introduced by patch in 2025.1 Epoxy
(If0070cfbc218e0515bf3b58fc8c5067ae22c7072) that is not backportable.
Closes-Bug: #2095364
Change-Id: If282b8709954f276cb5d48114437809d771a9958
Signed-off-by: Wesley Hershberger <wesley.hershberger at canonical.com>
(cherry picked from commit 509820f156e339e825f799d84b06cb11ac6b6096)
(cherry picked from commit 957d97ea30c52292e4105dbcb2ed10a509521ac5)
(cherry picked from commit 574c19ab8b1b0d53daa5cb6cc527ba058e42c51d)
** Changed in: nova/2024.1
Status: In Progress => Fix Committed
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to Ubuntu Cloud Archive.
https://bugs.launchpad.net/bugs/2095364
Title:
List server API v2.96 returns 500 if there is missing request spec
object
Status in Ubuntu Cloud Archive:
Fix Released
Status in Ubuntu Cloud Archive caracal series:
In Progress
Status in Ubuntu Cloud Archive dalmatian series:
Won't Fix
Status in Ubuntu Cloud Archive epoxy series:
Fix Released
Status in OpenStack Compute (nova):
Fix Released
Status in OpenStack Compute (nova) 2024.1 series:
Fix Committed
Status in OpenStack Compute (nova) 2024.2 series:
Fix Committed
Status in OpenStack Compute (nova) 2025.1 series:
Fix Released
Status in OpenStack Compute (nova) 2025.2 series:
Fix Released
Status in nova package in Ubuntu:
Fix Released
Status in nova source package in Noble:
In Progress
Bug description:
The List Server API and List Server detail API with v2.96 microversion
hits 500 error if one or more instance's request spec object don't
exist by any reason.
The error reason is v2.96 and later version requires the request_spec
information for the requested_az information, but the latest list view
builder code assumes all request_spec objects for all instances exist
correctly.
## Stacktrace
2025-01-16T06:39:41.756 10 ERROR nova.api.openstack.wsgi [F] [None req-0605cf7e-09db-4ba1-9914-68d34d935587 9d5b1aa120675648abcb2cb156f8020b 792bb91fb3a254b4b5cbf61bed57854e - - default default] Unexpected exception in API method: KeyError: '5d9070aa-33da-46bc-94bc-604746ecfbd2'
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] Traceback (most recent call last):
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] File "/opt/nova/lib64/python3.9/site-packages/nova/api/openstack/wsgi.py", line 665, in wrapped
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] return f(*args, **kwargs)
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] File "/opt/nova/lib64/python3.9/site-packages/nova/api/validation/__init__.py", line 195, in wrapper
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] return func(*args, **kwargs)
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] File "/opt/nova/lib64/python3.9/site-packages/nova/api/validation/__init__.py", line 195, in wrapper
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] return func(*args, **kwargs)
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] File "/opt/nova/lib64/python3.9/site-packages/nova/api/validation/__init__.py", line 195, in wrapper
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] return func(*args, **kwargs)
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] [Previous line repeated 2 more times]
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] File "/opt/nova/lib64/python3.9/site-packages/nova/api/openstack/compute/servers.py", line 146, in detail
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] servers = self._get_servers(req, is_detail=True)
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] File "/opt/nova/lib64/python3.9/site-packages/nova/api/openstack/compute/servers.py", line 360, in _get_servers
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] response = self._view_builder.detail(
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] File "/opt/nova/lib64/python3.9/site-packages/nova/api/openstack/compute/views/servers.py", line 475, in detail
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] servers_dict = self._list_view(self.show, request, instances,
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] File "/opt/nova/lib64/python3.9/site-packages/nova/api/openstack/compute/views/servers.py", line 529, in _list_view
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] server_list = [func(request, server,
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] File "/opt/nova/lib64/python3.9/site-packages/nova/api/openstack/compute/views/servers.py", line 535, in <listcomp>
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] provided_az=req_specs_dict[server.uuid])["server"]
2025-01-16T06:39:41.756 10 EXCEPTION nova.api.openstack.wsgi [P] [-] KeyError: '5d9070aa-33da-46bc-94bc-604746ecfbd2'
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/2095364/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list