Fix losing incoming EDUs if debug logging enabled

This commit is contained in:
Kai A. Hiller 2022-02-09 16:53:08 +01:00
parent 04f7b9ad80
commit 2c55219c1c
2 changed files with 53 additions and 1 deletions

View file

@ -0,0 +1,48 @@
From a160ac1d4e42e2a753172f939bead7d6c21ce0cd Mon Sep 17 00:00:00 2001
From: David Robertson <davidr@element.io>
Date: Wed, 2 Feb 2022 16:25:17 +0000
Subject: [PATCH 3/3] Fix losing incoming EDUs if debug logging enabled
(#11890)
* Fix losing incoming EDUs if debug logging enabled
Fixes #11889. Homeservers should only be affected if the
`synapse.8631_debug` logger was enabled for DEBUG mode.
I am not sure if this merits a bugfix release: I think the logging can
be disabled in config if anyone is affected? But it is still pretty bad.
---
changelog.d/11890.bugfix | 1 +
synapse/federation/transport/server/federation.py | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
create mode 100644 changelog.d/11890.bugfix
diff --git a/changelog.d/11890.bugfix b/changelog.d/11890.bugfix
new file mode 100644
index 0000000000..6b696692e3
--- /dev/null
+++ b/changelog.d/11890.bugfix
@@ -0,0 +1 @@
+Fix a bug introduced in Synapse 1.51.0rc1 where incoming federation transactions containing at least one EDU would be dropped if debug logging was enabled for `synapse.8631_debug`.
\ No newline at end of file
diff --git a/synapse/federation/transport/server/federation.py b/synapse/federation/transport/server/federation.py
index 9c1ad5851f..d86dfede4e 100644
--- a/synapse/federation/transport/server/federation.py
+++ b/synapse/federation/transport/server/federation.py
@@ -109,11 +109,11 @@ class FederationSendServlet(BaseFederationServerServlet):
)
if issue_8631_logger.isEnabledFor(logging.DEBUG):
- DEVICE_UPDATE_EDUS = {"m.device_list_update", "m.signing_key_update"}
+ DEVICE_UPDATE_EDUS = ["m.device_list_update", "m.signing_key_update"]
device_list_updates = [
edu.content
for edu in transaction_data.get("edus", [])
- if edu.edu_type in DEVICE_UPDATE_EDUS
+ if edu.get("edu_type") in DEVICE_UPDATE_EDUS
]
if device_list_updates:
issue_8631_logger.debug(
--
2.34.1

View file

@ -7,7 +7,7 @@
Name: matrix-%{srcname}
Version: 1.52.0
Release: 1%{?dist}
Release: 2%{?dist}
Summary: A Matrix reference homeserver written in Python using Twisted
License: ASL 2.0
URL: https://github.com/matrix-org/%{srcname}
@ -18,6 +18,7 @@ Source3: matrix-synapse.sysusers
# non-upstreamable patch to accept any version of python-cryptography, see RHBZ#1978949
Patch1: 0001-relax-cryptography-dependency-version-requirement.patch
Patch2: 0002-Fix-type-errors-introduced-by-new-annotations-in-the.patch
Patch3: 0003-Fix-losing-incoming-EDUs-if-debug-logging-enabled-11.patch
BuildArch: noarch
BuildRequires: python3-devel
@ -140,6 +141,9 @@ PYTHONPATH=. trial-3 tests
%changelog
* Wed Feb 09 2022 Kai A. Hiller <V02460@gmail.com> - 1.52.0-2
- Backport: Fix losing incoming EDUs if debug logging enabled
* Tue Feb 08 2022 Kai A. Hiller <V02460@gmail.com> - 1.52.0-1
- Update to v1.52.0
- Create synapse user and group declaratively