yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #74307
[Bug 1781880] Re: nova service-list for new compute service causes TypeError with servicegroup_driver mc
Reviewed: https://review.openstack.org/583936
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=0f4e5c442c0ab446274979dafda873c1e1c20585
Submitter: Zuul
Branch: master
commit 0f4e5c442c0ab446274979dafda873c1e1c20585
Author: Kevin_Zheng <zhengzhenyu@xxxxxxxxxx>
Date: Thu Jul 19 19:09:31 2018 +0800
Fix service list for disabled compute using MC driver
In 0df91a7f799060cd2e9b8a0adac1efacb974bcb3 a comparison
between ``updated_at`` field from services table and update time
from memcache was added if the servergroup_driver is set to be
mc.
This could be problematic if servergroup_driver=mc and
``[DEFAULT]/enable_new_services`` option in /etc/nova/nova.conf
is set to be ``False`` at the same time, as the ``updated_at``
field will always be ``Null`` in services record.
This patch fixes the bug by returning ``updated_time_in_mc`` instead
under the above mentioned scenario.
Closes-Bug: #1781880
Change-Id: I27160140cbccf3e6914aed2dcff54d547e446c1f
** 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/1781880
Title:
nova service-list for new compute service causes TypeError with
servicegroup_driver mc
Status in OpenStack Compute (nova):
Fix Released
Status in OpenStack Compute (nova) pike series:
Confirmed
Status in OpenStack Compute (nova) queens series:
Confirmed
Status in OpenStack Compute (nova) rocky series:
Confirmed
Bug description:
Description
===========
nova service-list for new compute service causes TypeError.
Related commit: https://git.openstack.org/cgit/openstack/nova/commit/?id=0df91a7f799060cd2e9b8a0adac1efacb974bcb3
Steps to reproduce
==================
1. Set servicegroup_driver=mc and enable_new_services=False in /etc/nova/nova.conf
2. Add new compute host, start nova-compute service. Service becomes disabled, and field updated_at is NULL in nova.services table in DB.
3. Execute nova service-list.
Expected result
===============
List of the nova services
Actual result
=============
ERROR (ClientException): Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
<type 'exceptions.TypeError'> (HTTP 500) (Request-ID: req-cbd9f4ca-7634-4378-8dcc-5a03d9d4193f)
Environment
===========
OpenStack Pike
Logs
==============
Trace in the nova-api-os-compute logs:
ERROR nova.api.openstack.extensions [req-6034517c-bc29-4ebe-931e-8726fd934bee e05fb82b34cd4265a839f2482debb973 b5d263d6d7c24b84b335f4f00ae6d7c9] Unexpected exception in API method: TypeError: can't compare datetime.datetime to NoneType
TRACE nova.api.openstack.extensions Traceback (most recent call last):
TRACE nova.api.openstack.extensions File "/usr/lib/python2.7/dist-packages/nova/api/openstack/extensions.py", line 336, in wrapped
TRACE nova.api.openstack.extensions return f(*args, **kwargs)
TRACE nova.api.openstack.extensions File "/usr/lib/python2.7/dist-packages/nova/api/openstack/compute/services.py", line 261, in index
TRACE nova.api.openstack.extensions _services = self._get_services_list(req, ['forced_down'])
TRACE nova.api.openstack.extensions File "/usr/lib/python2.7/dist-packages/nova/api/openstack/compute/services.py", line 115, in _get_services_list
TRACE nova.api.openstack.extensions for svc in _services]
TRACE nova.api.openstack.extensions File "/usr/lib/python2.7/dist-packages/nova/api/openstack/compute/services.py", line 83, in _get_service_detail
TRACE nova.api.openstack.extensions updated_time = self.servicegroup_api.get_updated_time(svc)
TRACE nova.api.openstack.extensions File "/usr/lib/python2.7/dist-packages/nova/servicegroup/api.py", line 84, in get_updated_time
TRACE nova.api.openstack.extensions return self._driver.updated_time(member)
TRACE nova.api.openstack.extensions File "/usr/lib/python2.7/dist-packages/nova/servicegroup/drivers/mc.py", line 81, in updated_time
TRACE nova.api.openstack.extensions if updated_time_in_db <= updated_time_in_mc:
TRACE nova.api.openstack.extensions TypeError: can't compare datetime.datetime to NoneType
TRACE nova.api.openstack.extensions
2018-07-16 11:40:16,437.437 2096 INFO nova.api.openstack.wsgi [req-6034517c-bc29-4ebe-931e-8726fd934bee e05fb82b34cd4265a839f2482debb973 b5d263d6d7c24b84b335f4f00ae6d7c9] HTTP exception thrown: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
<type 'exceptions.TypeError'>
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1781880/+subscriptions
References