diff options
author | Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> | 2022-11-17 16:09:56 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-17 16:09:56 +0000 |
commit | e7132c3f81acbc50c1923cad7eeab96d3b2e05fd (patch) | |
tree | 74ad65f3da728bbf260f041da6681060c0f8dd31 | |
parent | Faster joins: do not wait for full state when creating events to send (#14403) (diff) | |
download | synapse-e7132c3f81acbc50c1923cad7eeab96d3b2e05fd.tar.xz |
Fix check to ignore blank lines in incoming TCP replication (#14449)
-rw-r--r-- | changelog.d/14449.misc | 1 | ||||
-rw-r--r-- | synapse/replication/tcp/protocol.py | 2 | ||||
-rw-r--r-- | synapse/storage/database.py | 6 |
3 files changed, 5 insertions, 4 deletions
diff --git a/changelog.d/14449.misc b/changelog.d/14449.misc new file mode 100644 index 0000000000..320c0b6fae --- /dev/null +++ b/changelog.d/14449.misc @@ -0,0 +1 @@ +Fix type logic in TCP replication code that prevented correctly ignoring blank commands. \ No newline at end of file diff --git a/synapse/replication/tcp/protocol.py b/synapse/replication/tcp/protocol.py index 7763ffb2d0..56a5c21910 100644 --- a/synapse/replication/tcp/protocol.py +++ b/synapse/replication/tcp/protocol.py @@ -245,7 +245,7 @@ class BaseReplicationStreamProtocol(LineOnlyReceiver): self._parse_and_dispatch_line(line) def _parse_and_dispatch_line(self, line: bytes) -> None: - if line.strip() == "": + if line.strip() == b"": # Ignore blank lines return diff --git a/synapse/storage/database.py b/synapse/storage/database.py index 4717c9728a..0dc44b246c 100644 --- a/synapse/storage/database.py +++ b/synapse/storage/database.py @@ -569,15 +569,15 @@ class DatabasePool: retcols=["update_name"], desc="check_background_updates", ) - updates = [x["update_name"] for x in updates] + background_update_names = [x["update_name"] for x in updates] for table, update_name in UNIQUE_INDEX_BACKGROUND_UPDATES.items(): - if update_name not in updates: + if update_name not in background_update_names: logger.debug("Now safe to upsert in %s", table) self._unsafe_to_upsert_tables.discard(table) # If there's any updates still running, reschedule to run. - if updates: + if background_update_names: self._clock.call_later( 15.0, run_as_background_process, |