From 66cb92eabceff06c36bee849969e7c56f35acd70 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Thu, 17 Sep 2020 15:53:23 -0500 Subject: [PATCH] =?UTF-8?q?fix(archival):=20=F0=9F=90=9B=20buffer=20stream?= =?UTF-8?q?=20to=20memory=20so=20HttpClient=20doesn't=20dispose=20before?= =?UTF-8?q?=20read=20completes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Commands/ArchiveList.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/Archival/FilterLists.Archival.Application/Commands/ArchiveList.cs b/services/Archival/FilterLists.Archival.Application/Commands/ArchiveList.cs index a4fd3a3b0..e0d9cd187 100644 --- a/services/Archival/FilterLists.Archival.Application/Commands/ArchiveList.cs +++ b/services/Archival/FilterLists.Archival.Application/Commands/ArchiveList.cs @@ -93,7 +93,12 @@ private async Task FetchStreamAsync( { using var response = await _httpClient.GetAsync(url, cancellationToken); response.EnsureSuccessStatusCode(); - return await response.Content.ReadAsStreamAsync(); + var sourceStream = await response.Content.ReadAsStreamAsync(); + + // TODO: verify efficiency. buffered to MemoryStream because Stream from HttpClient is disposed prematurely + var targetStream = new MemoryStream(); + await sourceStream.CopyToAsync(targetStream, cancellationToken); + return targetStream; } } }