From ac5feb4a7707630a8ffb239e2c710167246d7beb Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Mon, 23 Mar 2020 16:18:07 +0100 Subject: [PATCH 1/3] [misc] bump logger-sharelatex to 1.9.1 --- services/clsi/package-lock.json | 6 +++--- services/clsi/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/services/clsi/package-lock.json b/services/clsi/package-lock.json index 9167d627e9..c64e7d4485 100644 --- a/services/clsi/package-lock.json +++ b/services/clsi/package-lock.json @@ -3816,9 +3816,9 @@ } }, "logger-sharelatex": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/logger-sharelatex/-/logger-sharelatex-1.9.0.tgz", - "integrity": "sha512-yVTuha82047IiMOQLgQHCZGKkJo6I2+2KtiFKpgkIooR2yZaoTEvAeoMwBesSDSpGUpvUJ/+9UI+PmRyc+PQKQ==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/logger-sharelatex/-/logger-sharelatex-1.9.1.tgz", + "integrity": "sha512-9s6JQnH/PN+Js2CmI8+J3MQCTNlRzP2Dh4pcekXrV6Jm5J4HzyPi+6d3zfBskZ4NBmaUVw9hC4p5dmdaRmh4mQ==", "requires": { "@google-cloud/logging-bunyan": "^2.0.0", "@overleaf/o-error": "^2.0.0", diff --git a/services/clsi/package.json b/services/clsi/package.json index ed0db3e309..00440a8b1f 100644 --- a/services/clsi/package.json +++ b/services/clsi/package.json @@ -26,7 +26,7 @@ "fs-extra": "^8.1.0", "heapdump": "^0.3.15", "lockfile": "^1.0.4", - "logger-sharelatex": "^1.9.0", + "logger-sharelatex": "^1.9.1", "lynx": "0.2.0", "metrics-sharelatex": "^2.6.0", "mysql": "^2.18.1", From 4a19f022fc3d90201868d318b1b95b73c4b3bbcd Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Fri, 27 Mar 2020 10:39:45 +0100 Subject: [PATCH 2/3] [misc] keep up with the error signature of dockerode/docker-modem https://github.com/apocas/docker-modem/blob/v2.1.1/lib/modem.js#L296 --- services/clsi/app/js/DockerRunner.js | 6 +----- services/clsi/test/unit/js/DockerRunnerTests.js | 6 +++--- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/services/clsi/app/js/DockerRunner.js b/services/clsi/app/js/DockerRunner.js index 393ce3df37..3594b3a6d4 100644 --- a/services/clsi/app/js/DockerRunner.js +++ b/services/clsi/app/js/DockerRunner.js @@ -99,11 +99,7 @@ module.exports = DockerRunner = { error, output ) { - if ( - __guard__(error != null ? error.message : undefined, x => - x.match('HTTP code is 500') - ) - ) { + if (error && error.statusCode === 500) { logger.log( { err: error, project_id }, 'error running container so destroying and retrying' diff --git a/services/clsi/test/unit/js/DockerRunnerTests.js b/services/clsi/test/unit/js/DockerRunnerTests.js index eea66b12c1..83992833f3 100644 --- a/services/clsi/test/unit/js/DockerRunnerTests.js +++ b/services/clsi/test/unit/js/DockerRunnerTests.js @@ -202,9 +202,9 @@ describe('DockerRunner', function() { } if (firstTime) { firstTime = false - return callback( - new Error('HTTP code is 500 which indicates error: server error') - ) + const error = new Error('(HTTP code 500) server error - ...') + error.statusCode = 500 + return callback(error) } else { return callback(null, this.output) } From 67774325692c88e6a067adb9a76a5225960816a3 Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Thu, 26 Mar 2020 11:18:50 +0100 Subject: [PATCH 3/3] [misc] add a metric for failing downloads --- services/clsi/app/js/ResourceWriter.js | 1 + services/clsi/test/unit/js/ResourceWriterTests.js | 1 + 2 files changed, 2 insertions(+) diff --git a/services/clsi/app/js/ResourceWriter.js b/services/clsi/app/js/ResourceWriter.js index 5a234e0d49..ed3a1e8760 100644 --- a/services/clsi/app/js/ResourceWriter.js +++ b/services/clsi/app/js/ResourceWriter.js @@ -324,6 +324,7 @@ module.exports = ResourceWriter = { }, 'error downloading file for resources' ) + Metrics.inc('download-failed') } return callback() } diff --git a/services/clsi/test/unit/js/ResourceWriterTests.js b/services/clsi/test/unit/js/ResourceWriterTests.js index 68aa4560d6..a632c1bdff 100644 --- a/services/clsi/test/unit/js/ResourceWriterTests.js +++ b/services/clsi/test/unit/js/ResourceWriterTests.js @@ -36,6 +36,7 @@ describe('ResourceWriter', function() { './OutputFileFinder': (this.OutputFileFinder = {}), 'logger-sharelatex': { log: sinon.stub(), err: sinon.stub() }, './Metrics': (this.Metrics = { + inc: sinon.stub(), Timer: (Timer = (function() { Timer = class Timer { static initClass() {