diff options
author | Richard van der Hoff <richard@matrix.org> | 2018-09-26 08:09:07 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2018-09-27 11:31:51 +0100 |
commit | e3c159863d72ba1628394497bba45dd96b9cc1ac (patch) | |
tree | 8c19570ee9b4089ef3ceaf364d6b5c173d51c588 | |
parent | Merge pull request #3966 from matrix-org/rav/rx_txn_logging_2 (diff) | |
download | synapse-e3c159863d72ba1628394497bba45dd96b9cc1ac.tar.xz |
Clarifications in FederationHandler
* add some comments on things that look a bit bogus * rename this `state` variable to avoid confusion with the `state` used elsewhere in this function. (There was no actual conflict, but it was a confusing bit of spaghetti.)
-rw-r--r-- | synapse/handlers/federation.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py index 128926e719..6793f9b6c6 100644 --- a/synapse/handlers/federation.py +++ b/synapse/handlers/federation.py @@ -341,14 +341,23 @@ class FederationHandler(BaseHandler): ) with logcontext.nested_logging_context(p): - state, got_auth_chain = ( + # XXX if any of the missing prevs share missing state or auth + # events, we'll end up requesting those missing events for + # *each* missing prev, contributing to the hammering of /event + # as per https://github.com/matrix-org/synapse/issues/2164. + remote_state, got_auth_chain = ( yield self.federation_client.get_state_for_room( origin, room_id, p, ) ) + + # XXX hrm I'm not convinced that duplicate events will compare + # for equality, so I'm not sure this does what the author + # hoped. auth_chains.update(got_auth_chain) + state_group = { - (x.type, x.state_key): x.event_id for x in state + (x.type, x.state_key): x.event_id for x in remote_state } state_groups.append(state_group) |