From 6ebdc306edd9b1ee0d853bdad63c0fb418382eb7 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Wed, 21 Dec 2022 11:17:43 +0100 Subject: [bugfix] Close reader gracefully when streaming recache of remote media to fileserver api caller (#1281) * close pipereader on failed data function * gently slurp the bytes * readability updates * go fmt * tidy up file server tests + add more cases * start moving io wrappers to separate iotools package. Remove use of buffering while piping recache stream Signed-off-by: kim * add license text Signed-off-by: kim Co-authored-by: kim --- internal/processing/media/getfile_test.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'internal/processing/media/getfile_test.go') diff --git a/internal/processing/media/getfile_test.go b/internal/processing/media/getfile_test.go index ba7269535..7b9786914 100644 --- a/internal/processing/media/getfile_test.go +++ b/internal/processing/media/getfile_test.go @@ -19,6 +19,7 @@ package media_test import ( + "bytes" "context" "io" "path" @@ -143,9 +144,13 @@ func (suite *GetFileTestSuite) TestGetRemoteFileUncachedInterrupted() { suite.NotNil(content) // only read the first kilobyte and then stop - b := make([]byte, 1024) - _, err = content.Content.Read(b) - suite.NoError(err) + b := make([]byte, 0, 1024) + if !testrig.WaitFor(func() bool { + read, err := io.CopyN(bytes.NewBuffer(b), content.Content, 1024) + return err == nil && read == 1024 + }) { + suite.FailNow("timed out trying to read first 1024 bytes") + } // close the reader suite.NoError(content.Content.Close()) -- cgit v1.2.3