summary refs log tree commit diff
diff options
context:
space:
mode:
authorSean Quah <8349537+squahtx@users.noreply.github.com>2021-12-07 11:41:31 +0000
committerGitHub <noreply@github.com>2021-12-07 11:41:31 +0000
commiteccc49d7554d1fab001e1fefb0fda8ffb254b630 (patch)
tree1fee6bcbab0aa116820614961a9b275839b47b7a
parentFix 'delete room' admin api to work on incomplete rooms (#11523) (diff)
downloadsynapse-eccc49d7554d1fab001e1fefb0fda8ffb254b630.tar.xz
Fix `ModuleApi.looping_background_call` for non-async functions (#11524)
After #10847, `looping_background_call` would print an error in the logs
every time a non-async function was called. Since the error would be
caught and ignored immediately, there were no other side effects.
-rw-r--r--changelog.d/11524.bugfix1
-rw-r--r--synapse/module_api/__init__.py5
2 files changed, 3 insertions, 3 deletions
diff --git a/changelog.d/11524.bugfix b/changelog.d/11524.bugfix
new file mode 100644
index 0000000000..6e1e4bd44c
--- /dev/null
+++ b/changelog.d/11524.bugfix
@@ -0,0 +1 @@
+Fix a regression in Synapse 1.48.0 where the module API's `looping_background_call` method would spam errors to the logs when given a non-async function.
diff --git a/synapse/module_api/__init__.py b/synapse/module_api/__init__.py
index 6bfb4b8d1b..662e60bc33 100644
--- a/synapse/module_api/__init__.py
+++ b/synapse/module_api/__init__.py
@@ -108,6 +108,7 @@ from synapse.types import (
     create_requester,
 )
 from synapse.util import Clock
+from synapse.util.async_helpers import maybe_awaitable
 from synapse.util.caches.descriptors import cached
 
 if TYPE_CHECKING:
@@ -1014,9 +1015,7 @@ class ModuleApi:
                 run_as_background_process,
                 msec,
                 desc,
-                f,
-                *args,
-                **kwargs,
+                lambda: maybe_awaitable(f(*args, **kwargs)),
             )
         else:
             logger.warning(