diff --git a/CHANGES.md b/CHANGES.md
index a1349252cb..532b30e232 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,14 @@
+Synapse 1.32.2 (2021-04-22)
+===========================
+
+This release includes a fix for a regression introduced in 1.32.0.
+
+Bugfixes
+--------
+
+- Fix a regression in Synapse 1.32.0 and 1.32.1 which caused `LoggingContext` errors in plugins. ([\#9857](https://github.com/matrix-org/synapse/issues/9857))
+
+
Synapse 1.32.1 (2021-04-21)
===========================
diff --git a/debian/changelog b/debian/changelog
index b8cf2cac58..fd33bfda5c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+matrix-synapse-py3 (1.32.2) stable; urgency=medium
+
+ * New synapse release 1.32.2.
+
+ -- Synapse Packaging team <packages@matrix.org> Wed, 22 Apr 2021 12:43:52 +0100
+
matrix-synapse-py3 (1.32.1) stable; urgency=medium
* New synapse release 1.32.1.
diff --git a/synapse/__init__.py b/synapse/__init__.py
index a0332d602d..781f5ac3a2 100644
--- a/synapse/__init__.py
+++ b/synapse/__init__.py
@@ -48,7 +48,7 @@ try:
except ImportError:
pass
-__version__ = "1.32.1"
+__version__ = "1.32.2"
if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)):
# We import here so that we don't have to install a bunch of deps when
diff --git a/synapse/logging/context.py b/synapse/logging/context.py
index dbd7d3a33a..7fc11a9ac2 100644
--- a/synapse/logging/context.py
+++ b/synapse/logging/context.py
@@ -258,7 +258,8 @@ class LoggingContext:
child to the parent
Args:
- name (str): Name for the context for debugging.
+ name: Name for the context for logging. If this is omitted, it is
+ inherited from the parent context.
parent_context (LoggingContext|None): The parent of the new context
"""
@@ -277,12 +278,11 @@ class LoggingContext:
def __init__(
self,
- name: str,
+ name: Optional[str] = None,
parent_context: "Optional[LoggingContext]" = None,
request: Optional[ContextRequest] = None,
) -> None:
self.previous_context = current_context()
- self.name = name
# track the resources used by this context so far
self._resource_usage = ContextResourceUsage()
@@ -314,6 +314,15 @@ class LoggingContext:
# the request param overrides the request from the parent context
self.request = request
+ # if we don't have a `name`, but do have a parent context, use its name.
+ if self.parent_context and name is None:
+ name = str(self.parent_context)
+ if name is None:
+ raise ValueError(
+ "LoggingContext must be given either a name or a parent context"
+ )
+ self.name = name
+
def __str__(self) -> str:
return self.name
|