diff options
author | Erik Johnston <erik@matrix.org> | 2017-04-04 13:19:26 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2017-04-04 13:19:26 +0100 |
commit | 023ee197be23c02fa5f2e5bffba23fb0da2bf35b (patch) | |
tree | c0abea570b1eb5f83e01d43d61c9b46b7b9957c4 /synapse/replication/tcp/streams.py | |
parent | Merge pull request #2082 from matrix-org/erikj/repl_tcp_server (diff) | |
download | synapse-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.py | 7 |
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 |