If system time is adjusted first forward and then backward while a
masakari-engine service is running, then the periodic tasks stops
for the duration of time the system clock was adjusted backward.
This was supposed to be fixed by the following patch to oslo.service https://review.openstack.org/#/c/286838/ , but the order of imports
in unit tests and production code is different, so masakari services
end up starting with the default eventlet hub, that does not use a
monotonic clock and, thus, is affected by changes of system time.
Testing the change done in the patch is problematic, as it's a
subject of imports order and is not reproduced in functional or
unit tests (oslo_service is always imported earlier than eventlet
hub is initialized, so it just does "the right thing").
The alternative is to make an assertion when services start.
Co-Authored-By: Roman Podoliaka <email address hidden>
Closes-Bug: #1510234
Change-Id: I9d917b3151d9cdf7340a173b5baf98def63c76cd
Reviewed: https:/ /review. openstack. org/503939 /git.openstack. org/cgit/ openstack/ masakari/ commit/ ?id=2c4574bfdcf 9bd08efcb3c82be cb26787a635338
Committed: https:/
Submitter: Zuul
Branch: master
commit 2c4574bfdcf9bd0 8efcb3c82becb26 787a635338
Author: Dinesh Bhor <email address hidden>
Date: Wed Sep 13 16:12:33 2017 +0530
Make eventlet hub use a monotonic clock
If system time is adjusted first forward and then backward while a
masakari-engine service is running, then the periodic tasks stops
for the duration of time the system clock was adjusted backward.
This was supposed to be fixed by the following patch to oslo.service /review. openstack. org/#/c/ 286838/ , but the order of imports
https:/
in unit tests and production code is different, so masakari services
end up starting with the default eventlet hub, that does not use a
monotonic clock and, thus, is affected by changes of system time.
Testing the change done in the patch is problematic, as it's a
subject of imports order and is not reproduced in functional or
unit tests (oslo_service is always imported earlier than eventlet
hub is initialized, so it just does "the right thing").
The alternative is to make an assertion when services start.
Co-Authored-By: Roman Podoliaka <email address hidden> f7340a173b5baf9 8def63c76cd
Closes-Bug: #1510234
Change-Id: I9d917b3151d9cd