summary refs log tree commit diff
path: root/synapse/replication/tcp/streams.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2017-04-04 13:19:26 +0100
committerErik Johnston <erik@matrix.org>2017-04-04 13:19:26 +0100
commit023ee197be23c02fa5f2e5bffba23fb0da2bf35b (patch)
treec0abea570b1eb5f83e01d43d61c9b46b7b9957c4 /synapse/replication/tcp/streams.py
parentMerge pull request #2082 from matrix-org/erikj/repl_tcp_server (diff)
downloadsynapse-023ee197be23c02fa5f2e5bffba23fb0da2bf35b.tar.xz
Advance replication streams even if nothing is listening
Otherwise the streams don't advance and steadily fall behind, so when a
worker does connect either a) they'll be streamed lots of old updates or
b) the connection will fail as the streams are too far behind.
Diffstat (limited to 'synapse/replication/tcp/streams.py')
-rw-r--r--synapse/replication/tcp/streams.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/synapse/replication/tcp/streams.py b/synapse/replication/tcp/streams.py
index fada40c6ef..4de4ebe84d 100644
--- a/synapse/replication/tcp/streams.py
+++ b/synapse/replication/tcp/streams.py
@@ -89,6 +89,13 @@ class Stream(object):
         """
         self.upto_token = self.current_token()
 
+    def discard_updates_and_advance(self):
+        """Called when the stream should advance but the updates would be discarded,
+        e.g. when there are no currently connected workers.
+        """
+        self.upto_token = self.current_token()
+        self.last_token = self.upto_token
+
     @defer.inlineCallbacks
     def get_updates(self):
         """Gets all updates since the last time this function was called (or