Actually fix bad debug logging rejecting device list & signing key transactions (#12098)
This commit is contained in:
parent
9e83521af8
commit
5565f454e1
|
@ -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`.
|
|
@ -110,7 +110,7 @@ class FederationSendServlet(BaseFederationServerServlet):
|
|||
if issue_8631_logger.isEnabledFor(logging.DEBUG):
|
||||
DEVICE_UPDATE_EDUS = ["m.device_list_update", "m.signing_key_update"]
|
||||
device_list_updates = [
|
||||
edu.content
|
||||
edu.get("content", {})
|
||||
for edu in transaction_data.get("edus", [])
|
||||
if edu.get("edu_type") in DEVICE_UPDATE_EDUS
|
||||
]
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
# limitations under the License.
|
||||
|
||||
from tests import unittest
|
||||
from tests.unittest import override_config
|
||||
from tests.unittest import DEBUG, override_config
|
||||
|
||||
|
||||
class RoomDirectoryFederationTests(unittest.FederatingHomeserverTestCase):
|
||||
|
@ -38,3 +38,21 @@ class RoomDirectoryFederationTests(unittest.FederatingHomeserverTestCase):
|
|||
"/_matrix/federation/v1/publicRooms",
|
||||
)
|
||||
self.assertEqual(200, channel.code)
|
||||
|
||||
@DEBUG
|
||||
def test_edu_debugging_doesnt_explode(self):
|
||||
"""Sanity check incoming federation succeeds with `synapse.debug_8631` enabled.
|
||||
|
||||
Remove this when we strip out issue_8631_logger.
|
||||
"""
|
||||
channel = self.make_signed_federation_request(
|
||||
"PUT",
|
||||
"/_matrix/federation/v1/send/txn_id_1234/",
|
||||
content={
|
||||
"edus": [
|
||||
{"edu_type": "m.device_list_update", "content": {"foo": "bar"}}
|
||||
],
|
||||
"pdus": [],
|
||||
},
|
||||
)
|
||||
self.assertEqual(200, channel.code)
|
||||
|
|
Loading…
Reference in New Issue