Fix logcontext handling for concurrently_execute

Avoid preserve_context_over_deferred, which is broken.
This commit is contained in:
Richard van der Hoff 2017-10-06 22:24:28 +01:00
parent 3ddda939d3
commit 148428ce76

View File

@ -19,7 +19,7 @@ from twisted.internet import defer, reactor
from .logcontext import ( from .logcontext import (
PreserveLoggingContext, preserve_fn, preserve_context_over_deferred, PreserveLoggingContext, preserve_fn, preserve_context_over_deferred,
) )
from synapse.util import unwrapFirstError from synapse.util import logcontext, unwrapFirstError
from contextlib import contextmanager from contextlib import contextmanager
@ -155,7 +155,7 @@ def concurrently_execute(func, args, limit):
except StopIteration: except StopIteration:
pass pass
return preserve_context_over_deferred(defer.gatherResults([ return logcontext.make_deferred_yieldable(defer.gatherResults([
preserve_fn(_concurrently_execute_inner)() preserve_fn(_concurrently_execute_inner)()
for _ in xrange(limit) for _ in xrange(limit)
], consumeErrors=True)).addErrback(unwrapFirstError) ], consumeErrors=True)).addErrback(unwrapFirstError)