Merge "Make eventlet hub use a monotonic clock"

This commit is contained in:
Zuul 2017-11-14 07:49:18 +00:00 committed by Gerrit Code Review
commit abf1ec6c8c
2 changed files with 17 additions and 0 deletions

View File

@ -26,4 +26,9 @@ import os
os.environ['EVENTLET_NO_GREENDNS'] = 'yes'
# NOTE(rpodolyaka): import oslo_service first, so that it makes eventlet hub
# use a monotonic clock to avoid issues with drifts of system time (see
# LP 1510234 for details)
import oslo_service # noqa
import eventlet # noqa

View File

@ -41,6 +41,17 @@ LOG = logging.getLogger(__name__)
CONF = masakari.conf.CONF
def assert_eventlet_uses_monotonic_clock():
import eventlet.hubs as hubs
import monotonic
hub = hubs.get_hub()
if hub.clock is not monotonic.monotonic:
raise RuntimeError(
'eventlet hub is not using a monotonic clock - '
'periodic tasks will be affected by drifts of system time.')
class Service(service.Service):
"""Service object for binaries running on hosts.
@ -78,6 +89,7 @@ class Service(service.Service):
}
def start(self):
assert_eventlet_uses_monotonic_clock()
verstr = version.version_string_with_package()
LOG.info('Starting %(topic)s (version %(version)s)', {
'topic': self.topic,