Merge "Make eventlet hub use a monotonic clock"
This commit is contained in:
commit
abf1ec6c8c
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue