From d7d42387f5788ca31b1db6309cb30ff180b8a22c Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Thu, 16 Apr 2020 14:37:06 +0100 Subject: [PATCH] Fix 'generator object is not subscriptable' error (#7290) Some of the query functions return generators rather than lists, so we can't index into the result. Happily we already have a copy of the results. (think this was introduced in #7024) --- changelog.d/7290.misc | 1 + synapse/replication/tcp/streams/_base.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 changelog.d/7290.misc diff --git a/changelog.d/7290.misc b/changelog.d/7290.misc new file mode 100644 index 000000000..676f28537 --- /dev/null +++ b/changelog.d/7290.misc @@ -0,0 +1 @@ +Move catchup of replication streams logic to worker. diff --git a/synapse/replication/tcp/streams/_base.py b/synapse/replication/tcp/streams/_base.py index f56a0fd4b..0d3f05077 100644 --- a/synapse/replication/tcp/streams/_base.py +++ b/synapse/replication/tcp/streams/_base.py @@ -148,8 +148,9 @@ def db_query_to_update_function( updates = [(row[0], row[1:]) for row in rows] limited = False if len(updates) == limit: - upto_token = rows[-1][0] + upto_token = updates[-1][0] limited = True + assert len(updates) <= limit return updates, upto_token, limited