This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
run_background_updates
doesn't give up on faulty background updates, opting instead to fill the disk with StopIteration
exceptions
#12780
This part of
run_background_updates
:synapse/synapse/storage/background_updates.py
Lines 278 to 290 in 2e6068b
will repeatedly run a faulty background update until the disk fills up from the log spam.
For a simple reproduction case, apply this:
then try and run a trial test.
You'll get reams and reams of:
My PR #12687 triggers this but only in SyTest and only in CI, for whatever reason. The problem is that filling up the disk is a dreadful failure mode for CI, as that prevents you from getting access to the logs. (The best approach I've found is to run a script in parallel that will kill SyTest after a fixed time.)
It's not clear to me that spinning on an error is the correct behaviour. Shouldn't we just bubble it up? Perhaps after a fixed number of retries (I'm not sure why it retries, but for the sake of it I could be tempted to only bail if there have been e.g. 5 back-to-back failures.)?
I don't really know what the
StopIteration
is about; I suspect it's related to Twisted's_inlineCallbacks
though.The text was updated successfully, but these errors were encountered: