Fix logcontext leak in media repo

Make FileResponder.write_to_consumer uphold the logcontext contract
This commit is contained in:
Richard van der Hoff 2018-05-02 13:29:16 +01:00
parent a8d8bf92e0
commit be31adb036
2 changed files with 4 additions and 1 deletions

View file

@ -143,6 +143,7 @@ def respond_with_responder(request, responder, media_type, file_size, upload_nam
respond_404(request) respond_404(request)
return return
logger.debug("Responding to media request with responder %s")
add_file_headers(request, media_type, file_size, upload_name) add_file_headers(request, media_type, file_size, upload_name)
with responder: with responder:
yield responder.write_to_consumer(request) yield responder.write_to_consumer(request)

View file

@ -255,7 +255,9 @@ class FileResponder(Responder):
self.open_file = open_file self.open_file = open_file
def write_to_consumer(self, consumer): def write_to_consumer(self, consumer):
return FileSender().beginFileTransfer(self.open_file, consumer) return make_deferred_yieldable(
FileSender().beginFileTransfer(self.open_file, consumer)
)
def __exit__(self, exc_type, exc_val, exc_tb): def __exit__(self, exc_type, exc_val, exc_tb):
self.open_file.close() self.open_file.close()