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.mu...@linecorp.com>
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


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to