diff --git a/services/track-changes/app/js/PackWorker.js b/services/track-changes/app/js/PackWorker.js index 500556cd79..232d7b24ed 100644 --- a/services/track-changes/app/js/PackWorker.js +++ b/services/track-changes/app/js/PackWorker.js @@ -15,10 +15,11 @@ */ let LIMIT, pending let project_id, doc_id +const { callbackify } = require('util') const Settings = require('settings-sharelatex') const async = require('async') const _ = require('underscore') -const { db, ObjectId, waitForDb } = require('./mongodb') +const { db, ObjectId, waitForDb, closeDb } = require('./mongodb') const fs = require('fs') const Metrics = require('metrics-sharelatex') Metrics.initialize('track-changes') @@ -84,7 +85,7 @@ const finish = function () { clearTimeout(shutDownTimer) } logger.log('closing db') - return db.close(function () { + callbackify(closeDb)(function () { logger.log('closing LockManager Redis Connection') return LockManager.close(function () { logger.log( diff --git a/services/track-changes/app/js/mongodb.js b/services/track-changes/app/js/mongodb.js index 38ebe0462a..e0d50a165b 100644 --- a/services/track-changes/app/js/mongodb.js +++ b/services/track-changes/app/js/mongodb.js @@ -23,8 +23,20 @@ async function setupDb() { db.projectHistoryMetaData = internalDb.collection('projectHistoryMetaData') } +async function closeDb() { + let client + try { + client = await clientPromise + } catch (e) { + // there is nothing to close + return + } + return client.close() +} + module.exports = { db, ObjectId, + closeDb, waitForDb }