summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/handlers/federation.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py
index 7b3834a915..de839ca527 100644
--- a/synapse/handlers/federation.py
+++ b/synapse/handlers/federation.py
@@ -836,12 +836,22 @@ class FederationHandler(BaseHandler):
         #
         # We do this by filtering all the extremities and seeing if any remain.
         # Given we don't have the extremity events themselves, we need to
-        # actually check the events that references them.
+        # actually check the events that reference them.
+        #
+        # *Note*: the spec wants us to keep backfilling until we reach the start
+        # of the room in case we are allowed to see some of the history. However
+        # in practice that causes more issues than its worth, as a) its
+        # relatively rare for there to be any visible history and b) even when
+        # there is its often sufficiently long ago that clients would stop
+        # attempting to paginate before backfill reached the visible history.
+        #
+        # TODO: If we do do a backfill the we should filter the extremities to
+        #   only include those that point to visible portions of history.
         #
-        # TODO: Filter the list of extremities if we do do a backfill
         # TODO: Correctly handle the case where we are allowed to see the
         #   forward event but not the extremity, e.g. in the case of initial
-        #   join of the server.
+        #   join of the server where we are allowed to see the join event but
+        #   not anything before it.
 
         forward_events = yield self.store.get_forward_events(
             list(extremities),