2 files changed, 9 insertions, 3 deletions
diff --git a/synapse/storage/__init__.py b/synapse/storage/__init__.py
index 1a6a8a3762..c6ce65b4cc 100644
--- a/synapse/storage/__init__.py
+++ b/synapse/storage/__init__.py
@@ -354,6 +354,11 @@ def _upgrade_existing_database(cur, current_version, applied_delta_files,
)
logger.debug("Running script %s", relative_path)
module.run_upgrade(cur, database_engine)
+ elif ext == ".pyc":
+ # Sometimes .pyc files turn up anyway even though we've
+ # disabled their generation; e.g. from distribution package
+ # installers. Silently skip it
+ pass
elif ext == ".sql":
# A plain old .sql file, just read and execute it
logger.debug("Applying schema %s", relative_path)
diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py
index 556aa3b523..a49dbb2ef5 100644
--- a/synapse/storage/_base.py
+++ b/synapse/storage/_base.py
@@ -186,8 +186,8 @@ class CacheDescriptor(object):
try:
cached_result_d = self.cache.get(keyargs)
+ observer = cached_result_d.observe()
if DEBUG_CACHES:
-
@defer.inlineCallbacks
def check_result(cached_result):
actual_result = yield self.function_to_call(obj, *args, **kwargs)
@@ -198,9 +198,10 @@ class CacheDescriptor(object):
cached_result, actual_result,
)
raise ValueError("Stale cache entry")
- cached_result_d.observe().addCallback(check_result)
+ defer.returnValue(cached_result)
+ observer.addCallback(check_result)
- return cached_result_d.observe()
+ return observer
except KeyError:
# Get the sequence number of the cache before reading from the
# database so that we can tell if the cache is invalidated
|