Merge "Make eventlet hub use a monotonic clock" into stable/pike

This commit is contained in:
Zuul 2018-02-13 16:39:31 +00:00 committed by Gerrit Code Review
commit 6d06aa4ad9
2 changed files with 18 additions and 0 deletions

View File

@ -27,4 +27,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

@ -95,6 +95,17 @@ def setup_profiler(binary, host):
LOG.info(_LI("OSProfiler is enabled."))
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.
@ -136,6 +147,8 @@ class Service(service.Service):
}
def start(self):
assert_eventlet_uses_monotonic_clock()
verstr = version.version_string_with_package()
LOG.info(_LI('Starting %(topic)s node (version %(version)s)'),
{'topic': self.topic, 'version': verstr})