Skip to content

Commit c4b5979

Browse files
committed
Capture logs of test_recovery test
Otherwise they end up overrunning Twisted’s AMP protocol message size and raising a `TooLong` error.
1 parent e3e822e commit c4b5979

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

tests/storage/databases/main/test_events_worker.py

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -449,28 +449,31 @@ def test_failure(self) -> None:
449449

450450
def test_recovery(self) -> None:
451451
"""Test that event fetchers recover after a database outage."""
452-
with self._outage():
453-
# Kick off a bunch of event fetches but do not pump the reactor
454-
event_deferreds = []
455-
for event_id in self.event_ids:
456-
d = ensureDeferred(self.store.get_event(event_id))
457-
# Prevent the failures from being logged as unhandled by adding
458-
# a no-op errback.
459-
d.addErrback(lambda failure: failure)
460-
event_deferreds.append(d)
461-
462-
# We should have maxed out on event fetcher threads
463-
self.assertEqual(self.store._event_fetch_ongoing, EVENT_QUEUE_THREADS)
464-
465-
# All the event fetchers will fail
466-
self.pump()
467-
self.assertEqual(self.store._event_fetch_ongoing, 0)
468-
469-
for event_deferred in event_deferreds:
470-
failure = self.get_failure(event_deferred, Exception)
471-
self.assertEqual(
472-
str(failure.value), "Could not connect to the database."
473-
)
452+
with self.assertLogs(
453+
"synapse.metrics.background_process_metrics", level="ERROR"
454+
):
455+
with self._outage():
456+
# Kick off a bunch of event fetches but do not pump the reactor
457+
event_deferreds = []
458+
for event_id in self.event_ids:
459+
d = ensureDeferred(self.store.get_event(event_id))
460+
# Prevent the failures from being logged as unhandled by adding
461+
# a no-op errback.
462+
d.addErrback(lambda failure: failure)
463+
event_deferreds.append(d)
464+
465+
# We should have maxed out on event fetcher threads
466+
self.assertEqual(self.store._event_fetch_ongoing, EVENT_QUEUE_THREADS)
467+
468+
# All the event fetchers will fail
469+
self.pump()
470+
self.assertEqual(self.store._event_fetch_ongoing, 0)
471+
472+
for event_deferred in event_deferreds:
473+
failure = self.get_failure(event_deferred, Exception)
474+
self.assertEqual(
475+
str(failure.value), "Could not connect to the database."
476+
)
474477

475478
# This next event fetch should succeed
476479
self.get_success(self.store.get_event(self.event_ids[0]))

0 commit comments

Comments
 (0)