Merge pull request #12938 from overleaf/jpa-leaks-filestore

[filestore] cacheWarm: destroy file stream when not piping into response

GitOrigin-RevId: a0fb14e5ececd28d8d9dbed8cd3a5622c81b8230
This commit is contained in:
Jakob Ackermann 2023-05-08 12:03:50 +01:00 committed by Copybot
parent 51af6558cc
commit 3428d53afe
3 changed files with 12 additions and 1 deletions

View file

@ -67,6 +67,7 @@ function getFile(req, res, next) {
}
if (req.query.cacheWarm) {
fileStream.destroy()
return res.sendStatus(200).end()
}

View file

@ -901,6 +901,14 @@ describe('Filestore', function () {
expect(response.status).to.equal(200)
})
it('should not leak sockets', async function () {
const response1 = await fetch(previewFileUrl)
expect(response1.status).to.equal(200)
const response2 = await fetch(previewFileUrl)
expect(response2.status).to.equal(200)
await expectNoSockets()
})
it("should respond with only an 'OK'", async function () {
// note: this test relies of the imagemagick conversion working
const response = await fetch(previewFileUrl)

View file

@ -22,7 +22,9 @@ describe('FileController', function () {
},
}
const fileSize = 1234
const fileStream = 'fileStream'
const fileStream = {
destroy() {},
}
const projectId = 'projectId'
const fileId = 'file_id'
const bucket = 'user_files'