yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #95782
[Bug 2095364] Re: List server API v2.96 returns 500 if there is missing request spec object
Reviewed: https://review.opendev.org/c/openstack/nova/+/939658
Committed: https://opendev.org/openstack/nova/commit/509820f156e339e825f799d84b06cb11ac6b6096
Submitter: "Zuul (22348)"
Branch: master
commit 509820f156e339e825f799d84b06cb11ac6b6096
Author: Masahito Muroi <masahito.muroi@xxxxxxxxxxxx>
Date: Tue Jan 21 10:03:24 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.
Closes-Bug: #2095364
Change-Id: If282b8709954f276cb5d48114437809d771a9958
** 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/2095364
Title:
List server API v2.96 returns 500 if there is missing request spec
object
Status in OpenStack Compute (nova):
Fix Released
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/nova/+bug/2095364/+subscriptions
References