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 <[email protected]> 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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

