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.
This commit is contained in:
David Robertson 2022-02-02 16:25:17 +00:00 committed by GitHub
parent 23a698f5e6
commit dd7f825118
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 2 deletions

1
changelog.d/11890.bugfix Normal file
View file

@ -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`.

View file

@ -109,11 +109,11 @@ class FederationSendServlet(BaseFederationServerServlet):
) )
if issue_8631_logger.isEnabledFor(logging.DEBUG): 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 = [ device_list_updates = [
edu.content edu.content
for edu in transaction_data.get("edus", []) 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: if device_list_updates:
issue_8631_logger.debug( issue_8631_logger.debug(