From c4956d11ad419ee3853e4e259cd9b9b474817f97 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Sat, 5 Oct 2019 12:52:17 +0100 Subject: [PATCH 1/3] Fix /federation/v1/state for recent room versions Turns out this endpoint was completely broken for v3 rooms. Hopefully this re-signing code is irrelevant nowadays anyway. --- changelog.d/6170.bugfix | 1 + synapse/federation/federation_server.py | 13 ------------- 2 files changed, 1 insertion(+), 13 deletions(-) create mode 100644 changelog.d/6170.bugfix diff --git a/changelog.d/6170.bugfix b/changelog.d/6170.bugfix new file mode 100644 index 000000000000..52f7ea233c9f --- /dev/null +++ b/changelog.d/6170.bugfix @@ -0,0 +1 @@ +Fix /federation/v1/state endpoint for recent room versions. diff --git a/synapse/federation/federation_server.py b/synapse/federation/federation_server.py index da06ab379d60..21e52c9695b6 100644 --- a/synapse/federation/federation_server.py +++ b/synapse/federation/federation_server.py @@ -36,7 +36,6 @@ UnsupportedRoomVersionError, ) from synapse.api.room_versions import KNOWN_ROOM_VERSIONS -from synapse.crypto.event_signing import compute_event_signature from synapse.events import room_version_to_event_format from synapse.federation.federation_base import FederationBase, event_from_pdu_json from synapse.federation.persistence import TransactionActions @@ -322,18 +321,6 @@ def _on_context_state_request_compute(self, room_id, event_id): pdus = yield self.handler.get_state_for_pdu(room_id, event_id) auth_chain = yield self.store.get_auth_chain([pdu.event_id for pdu in pdus]) - for event in auth_chain: - # We sign these again because there was a bug where we - # incorrectly signed things the first time round - if self.hs.is_mine_id(event.event_id): - event.signatures.update( - compute_event_signature( - event.get_pdu_json(), - self.hs.hostname, - self.hs.config.signing_key[0], - ) - ) - return { "pdus": [pdu.get_pdu_json() for pdu in pdus], "auth_chain": [pdu.get_pdu_json() for pdu in auth_chain], From f4b41f73d4083534f0be9df5b034e05774239001 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Mon, 7 Oct 2019 16:32:12 +0100 Subject: [PATCH 2/3] more debugging for public rooms test --- synapse/handlers/room.py | 2 +- synapse/handlers/stats.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py index 970be3c84604..ab82e12c89cd 100644 --- a/synapse/handlers/room.py +++ b/synapse/handlers/room.py @@ -711,7 +711,7 @@ def create(etype, content, **kwargs): @defer.inlineCallbacks def send(etype, content, **kwargs): event = create(etype, content, **kwargs) - logger.info("Sending %s in new room", etype) + logger.info("Sending %s in new room %s", etype, room_id) yield self.event_creation_handler.create_and_send_nonmember_event( creator, event, ratelimit=False ) diff --git a/synapse/handlers/stats.py b/synapse/handlers/stats.py index c62b113115f5..ece22cb349eb 100644 --- a/synapse/handlers/stats.py +++ b/synapse/handlers/stats.py @@ -124,7 +124,7 @@ def _unsafe_process(self): stream_id=max_pos, ) - logger.debug("Handled room stats to %s -> %s", self.pos, max_pos) + logger.info("Handled room stats between %s and %s", self.pos, max_pos) event_processing_positions.labels("stats").set(max_pos) @@ -153,7 +153,7 @@ def _handle_deltas(self, deltas): stream_id = delta["stream_id"] prev_event_id = delta["prev_event_id"] - logger.debug("Handling: %r, %r %r, %s", room_id, typ, state_key, event_id) + logger.info("Handling: %r, %r %r, %s", room_id, typ, state_key, event_id) token = yield self.store.get_earliest_token_for_stats("room", room_id) From 9ed04febc4a4c23401af42c293831d19a1bdfc6e Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Mon, 7 Oct 2019 17:33:25 +0100 Subject: [PATCH 3/3] Revert "more debugging for public rooms test" This reverts commit f4b41f73d4083534f0be9df5b034e05774239001. --- synapse/handlers/room.py | 2 +- synapse/handlers/stats.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py index ab82e12c89cd..970be3c84604 100644 --- a/synapse/handlers/room.py +++ b/synapse/handlers/room.py @@ -711,7 +711,7 @@ def create(etype, content, **kwargs): @defer.inlineCallbacks def send(etype, content, **kwargs): event = create(etype, content, **kwargs) - logger.info("Sending %s in new room %s", etype, room_id) + logger.info("Sending %s in new room", etype) yield self.event_creation_handler.create_and_send_nonmember_event( creator, event, ratelimit=False ) diff --git a/synapse/handlers/stats.py b/synapse/handlers/stats.py index ece22cb349eb..c62b113115f5 100644 --- a/synapse/handlers/stats.py +++ b/synapse/handlers/stats.py @@ -124,7 +124,7 @@ def _unsafe_process(self): stream_id=max_pos, ) - logger.info("Handled room stats between %s and %s", self.pos, max_pos) + logger.debug("Handled room stats to %s -> %s", self.pos, max_pos) event_processing_positions.labels("stats").set(max_pos) @@ -153,7 +153,7 @@ def _handle_deltas(self, deltas): stream_id = delta["stream_id"] prev_event_id = delta["prev_event_id"] - logger.info("Handling: %r, %r %r, %s", room_id, typ, state_key, event_id) + logger.debug("Handling: %r, %r %r, %s", room_id, typ, state_key, event_id) token = yield self.store.get_earliest_token_for_stats("room", room_id)