diff options
author | Sean Quah <8349537+squahtx@users.noreply.github.com> | 2021-10-08 12:27:16 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-08 12:27:16 +0100 |
commit | 49a683d871add82fb1a8125c6803ac15ec7d341b (patch) | |
tree | a565024f2db39f4cf6987ec2853dbc43e625a3c9 /changelog.d | |
parent | Include exception in json logging (#11028) (diff) | |
download | synapse-49a683d871add82fb1a8125c6803ac15ec7d341b.tar.xz |
Fix long-standing bug where `ReadWriteLock` could drop logging contexts (#10993)
Use `PreserveLoggingContext()` to ensure that logging contexts are not lost when exiting a read/write lock. When exiting a read/write lock, callbacks on a `Deferred` are triggered as a signal to any waiting coroutines. Any waiting coroutine that becomes runnable is likely to follow the Synapse logging context rules and will restore its own logging context, then either run to completion or await another `Deferred`, resetting the logging context in the process.
Diffstat (limited to 'changelog.d')
-rw-r--r-- | changelog.d/10993.misc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/changelog.d/10993.misc b/changelog.d/10993.misc new file mode 100644 index 0000000000..23c73dbac5 --- /dev/null +++ b/changelog.d/10993.misc @@ -0,0 +1 @@ +Fix a long-standing bug where `ReadWriteLock`s could drop logging contexts on exit. |