Fix logcontxt leak in keyclient (#2465)

preserve_context_over_function doesn't do what you want it to do.
This commit is contained in:
Richard van der Hoff 2017-09-25 09:51:39 +01:00 committed by GitHub
parent f65e31d22f
commit 79b3cf3e02

View file

@ -13,14 +13,11 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from synapse.util import logcontext
from twisted.web.http import HTTPClient from twisted.web.http import HTTPClient
from twisted.internet.protocol import Factory from twisted.internet.protocol import Factory
from twisted.internet import defer, reactor from twisted.internet import defer, reactor
from synapse.http.endpoint import matrix_federation_endpoint from synapse.http.endpoint import matrix_federation_endpoint
from synapse.util.logcontext import (
preserve_context_over_fn, preserve_context_over_deferred
)
import simplejson as json import simplejson as json
import logging import logging
@ -43,14 +40,10 @@ def fetch_server_key(server_name, ssl_context_factory, path=KEY_API_V1):
for i in range(5): for i in range(5):
try: try:
protocol = yield preserve_context_over_fn( with logcontext.PreserveLoggingContext():
endpoint.connect, factory protocol = yield endpoint.connect(factory)
) server_response, server_certificate = yield protocol.remote_key
server_response, server_certificate = yield preserve_context_over_deferred( defer.returnValue((server_response, server_certificate))
protocol.remote_key
)
defer.returnValue((server_response, server_certificate))
return
except SynapseKeyClientError as e: except SynapseKeyClientError as e:
logger.exception("Error getting key for %r" % (server_name,)) logger.exception("Error getting key for %r" % (server_name,))
if e.status.startswith("4"): if e.status.startswith("4"):