Merge "Make eventlet hub use a monotonic clock" into stable/pike
This commit is contained in:
commit
6d06aa4ad9
|
@ -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
|
||||
|
|
|
@ -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})
|
||||
|
|
Loading…
Reference in New Issue