From d0bbe8beaeaa847117594ba37cf73fa920c9c626 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Wed, 21 Jun 2017 15:18:36 +0100 Subject: [PATCH 1/3] If optipng is sigkilled by timeout, then ignore that error --- services/filestore/app/coffee/ImageOptimiser.coffee | 4 +++- .../test/unit/coffee/ImageOptimiserTests.coffee | 13 ++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/services/filestore/app/coffee/ImageOptimiser.coffee b/services/filestore/app/coffee/ImageOptimiser.coffee index 33c8cc8d56..939023a997 100644 --- a/services/filestore/app/coffee/ImageOptimiser.coffee +++ b/services/filestore/app/coffee/ImageOptimiser.coffee @@ -11,10 +11,12 @@ module.exports = timeout: 30 * 1000 killSignal: "SIGKILL" exec args, opts,(err, stdout, stderr)-> + if err? and err?.signal == 'SIGKILL' + logger.warn {err: err, stderr: stderr, localPath: localPath}, "optimiser timeout reached" + err = null if err? logger.err err:err, stderr:stderr, localPath:localPath, "something went wrong converting compressPng" else logger.log localPath:localPath, "finished compressPng file" callback(err) - diff --git a/services/filestore/test/unit/coffee/ImageOptimiserTests.coffee b/services/filestore/test/unit/coffee/ImageOptimiserTests.coffee index 80ca0c1d66..e16d8e0917 100644 --- a/services/filestore/test/unit/coffee/ImageOptimiserTests.coffee +++ b/services/filestore/test/unit/coffee/ImageOptimiserTests.coffee @@ -17,6 +17,7 @@ describe "ImageOptimiser", -> "logger-sharelatex": log:-> err:-> + warn:-> @sourcePath = "/this/path/here.eps" @error = "Error" @@ -36,4 +37,14 @@ describe "ImageOptimiser", -> @child_process.exec.callsArgWith(2, @error) @optimiser.compressPng @sourcePath, (err)=> err.should.equal @error - done() \ No newline at end of file + done() + + describe 'when optimiser is sigkilled', -> + + it 'should not produce an error', (done) -> + @error = new Error('woops') + @error.signal = 'SIGKILL' + @child_process.exec.callsArgWith(2, @error) + @optimiser.compressPng @sourcePath, (err)=> + expect(err).to.equal(null) + done() From ba9477cdb3cdc2f2c041889b65ebdf6e89ba76f9 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 22 Jun 2017 09:41:36 +0100 Subject: [PATCH 2/3] Re-work error checking --- services/filestore/app/coffee/ImageOptimiser.coffee | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/services/filestore/app/coffee/ImageOptimiser.coffee b/services/filestore/app/coffee/ImageOptimiser.coffee index 939023a997..fb2001a1d0 100644 --- a/services/filestore/app/coffee/ImageOptimiser.coffee +++ b/services/filestore/app/coffee/ImageOptimiser.coffee @@ -11,11 +11,12 @@ module.exports = timeout: 30 * 1000 killSignal: "SIGKILL" exec args, opts,(err, stdout, stderr)-> - if err? and err?.signal == 'SIGKILL' - logger.warn {err: err, stderr: stderr, localPath: localPath}, "optimiser timeout reached" - err = null if err? - logger.err err:err, stderr:stderr, localPath:localPath, "something went wrong converting compressPng" + if err.signal == 'SIGKILL' + logger.warn {err: err, stderr: stderr, localPath: localPath}, "optimiser timeout reached" + err = null + else + logger.err err:err, stderr:stderr, localPath:localPath, "something went wrong converting compressPng" else logger.log localPath:localPath, "finished compressPng file" callback(err) From 23fe93ccfda0fe6d187147ee5b37b564680d6636 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 22 Jun 2017 15:28:08 +0100 Subject: [PATCH 3/3] Prevent double-logging --- services/filestore/app/coffee/ImageOptimiser.coffee | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/services/filestore/app/coffee/ImageOptimiser.coffee b/services/filestore/app/coffee/ImageOptimiser.coffee index fb2001a1d0..4888e00224 100644 --- a/services/filestore/app/coffee/ImageOptimiser.coffee +++ b/services/filestore/app/coffee/ImageOptimiser.coffee @@ -11,13 +11,11 @@ module.exports = timeout: 30 * 1000 killSignal: "SIGKILL" exec args, opts,(err, stdout, stderr)-> - if err? - if err.signal == 'SIGKILL' - logger.warn {err: err, stderr: stderr, localPath: localPath}, "optimiser timeout reached" - err = null - else - logger.err err:err, stderr:stderr, localPath:localPath, "something went wrong converting compressPng" + if err? and err.signal == 'SIGKILL' + logger.warn {err: err, stderr: stderr, localPath: localPath}, "optimiser timeout reached" + err = null + else if err? + logger.err err:err, stderr:stderr, localPath:localPath, "something went wrong converting compressPng" else logger.log localPath:localPath, "finished compressPng file" callback(err) -