synapse/tests/util
Eric Eastwood 5a9ca1e3d9
Introduce Clock.call_when_running(...) to include logcontext by default (#18944)
Introduce `Clock.call_when_running(...)` to wrap startup code in a
logcontext, ensuring we can identify which server generated the logs.

Background:

>  Ideally, nothing from the Synapse homeserver would be logged against the `sentinel` 
>  logcontext as we want to know which server the logs came from. In practice, this is not 
>  always the case yet especially outside of request handling. 
>   
>  Global things outside of Synapse (e.g. Twisted reactor code) should run in the 
>  `sentinel` logcontext. It's only when it calls into application code that a logcontext 
>  gets activated. This means the reactor should be started in the `sentinel` logcontext, 
>  and any time an awaitable yields control back to the reactor, it should reset the 
>  logcontext to be the `sentinel` logcontext. This is important to avoid leaking the 
>  current logcontext to the reactor (which would then get picked up and associated with 
>  the next thing the reactor does). 
>
> *-- `docs/log_contexts.md`

Also adds a lint to prefer `Clock.call_when_running(...)` over
`reactor.callWhenRunning(...)`

Part of https://github.com/element-hq/synapse/issues/18905
2025-09-22 10:27:59 -05:00
..
caches Refactor cache metrics to be homeserver-scoped (#18604) 2025-07-16 16:04:57 -05:00
__init__.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_async_helpers.py Fix Twisted tests with latest release (#17911) 2024-11-07 16:22:09 +00:00
test_batching_queue.py Refactor Gauge metrics to be homeserver-scoped (#18725) 2025-07-29 10:37:59 -05:00
test_check_dependencies.py Remove support for python 3.8 (#17908) 2024-11-06 19:36:01 +00:00
test_dict_cache.py Refactor cache metrics to be homeserver-scoped (#18604) 2025-07-16 16:04:57 -05:00
test_events.py Add plain-text handling for rich-text topics as per MSC3765 (#18195) 2025-07-09 14:13:54 -05:00
test_expiring_cache.py Introduce Clock.call_when_running(...) to include logcontext by default (#18944) 2025-09-22 10:27:59 -05:00
test_file_consumer.py Update license headers 2023-11-21 15:29:58 -05:00
test_itertools.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_linearizer.py Cleanup Python 3.8 leftovers (#17967) 2025-02-10 16:53:24 +00:00
test_logcontext.py Introduce Clock.call_when_running(...) to include logcontext by default (#18944) 2025-09-22 10:27:59 -05:00
test_logformatter.py Update license headers 2023-11-21 15:29:58 -05:00
test_lrucache.py Refactor cache metrics to be homeserver-scoped (#18604) 2025-07-16 16:04:57 -05:00
test_macaroons.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_mutable_overlay_mapping.py Fix bug where sliding sync ignored room_id_to_include option (#18535) 2025-06-13 11:29:23 +01:00
test_ratelimitutils.py Refactor Counter metrics to be homeserver-scoped (#18656) 2025-07-25 14:58:47 -05:00
test_retryutils.py Refactor background process metrics to be homeserver-scoped (#18670) 2025-07-23 13:28:17 -05:00
test_rwlock.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_stream_change_cache.py Refactor cache metrics to be homeserver-scoped (#18604) 2025-07-16 16:04:57 -05:00
test_stringutils.py Implement MSC4133 to support custom profile fields. (#17488) 2025-01-21 11:11:04 +00:00
test_task_scheduler.py Introduce Clock.call_when_running(...) to include logcontext by default (#18944) 2025-09-22 10:27:59 -05:00
test_threepids.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_treecache.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_wheel_timer.py Fix WheelTimer implementation that can expired timeout early (#17850) 2024-11-05 12:08:17 -06:00