mirror of https://github.com/watcha-fr/synapse
Avoid incrementing bg process utime/stime counters by negative durations (#14323)
parent
7911e2835d
commit
2bb2c32e8e
@ -0,0 +1 @@ |
|||||||
|
Fix a bug introduced in Synapse 0.34.0rc2 where logs could include error spam when background processes are measured as taking a negative amount of time. |
@ -0,0 +1,19 @@ |
|||||||
|
from unittest import TestCase as StdlibTestCase |
||||||
|
from unittest.mock import Mock |
||||||
|
|
||||||
|
from synapse.logging.context import ContextResourceUsage, LoggingContext |
||||||
|
from synapse.metrics.background_process_metrics import _BackgroundProcess |
||||||
|
|
||||||
|
|
||||||
|
class TestBackgroundProcessMetrics(StdlibTestCase): |
||||||
|
def test_update_metrics_with_negative_time_diff(self) -> None: |
||||||
|
"""We should ignore negative reported utime and stime differences""" |
||||||
|
usage = ContextResourceUsage() |
||||||
|
usage.ru_stime = usage.ru_utime = -1.0 |
||||||
|
|
||||||
|
mock_logging_context = Mock(spec=LoggingContext) |
||||||
|
mock_logging_context.get_resource_usage.return_value = usage |
||||||
|
|
||||||
|
process = _BackgroundProcess("test process", mock_logging_context) |
||||||
|
# Should not raise |
||||||
|
process.update_metrics() |
Loading…
Reference in new issue