summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2015-05-15 16:34:17 +0100
committerErik Johnston <erik@matrix.org>2015-05-15 16:34:17 +0100
commit70f272f71ca399205a72deb29b0f86ff3bf23618 (patch)
tree8485e498e3066f3a683a01b23f9b23b2cbb4ad5f
parentDon't fetch prev_content for current_state (diff)
downloadsynapse-70f272f71ca399205a72deb29b0f86ff3bf23618.tar.xz
Don't completely drain the list
-rw-r--r--synapse/storage/events.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/synapse/storage/events.py b/synapse/storage/events.py

index 066e1aab75..6ee2e9a485 100644 --- a/synapse/storage/events.py +++ b/synapse/storage/events.py
@@ -505,8 +505,15 @@ class EventsStore(SQLBaseStore): while True: try: with self._event_fetch_lock: - event_list = self._event_fetch_list - self._event_fetch_list = [] + tot = 0 + for j, lst in enumerate(self._event_fetch_list): + if tot > 200: + break + tot += len(lst[0]) + + event_list = self._event_fetch_list[:j+1] + self._event_fetch_list = self._event_fetch_list[j+1:] + if not event_list: if self.database_engine.single_threaded or i > 3: self._event_fetch_ongoing -= 1