fix failure case

pull/8593/head
Richard van der Hoff 2020-10-21 18:54:53 +01:00
parent 2b3af01791
commit c13820bcee
1 changed files with 4 additions and 1 deletions

View File

@ -31,6 +31,7 @@ from typing import (
from prometheus_client import Gauge
from twisted.internet import defer
from twisted.python import failure
from synapse.util.async_helpers import ObservableDeferred
from synapse.util.caches.lrucache import LruCache
@ -223,7 +224,9 @@ class DeferredCache(Generic[KT, VT]):
# we can save a whole load of effort if the deferred is ready.
if value.called:
self.cache.set(key, value.result, callbacks)
result = value.result
if not isinstance(result, failure.Failure):
self.cache.set(key, result, callbacks)
return value
# otherwise, we'll add an entry to the _pending_deferred_cache for now,