From f0b608ddecd8b995c9ef399665aa5d8394ad05e0 Mon Sep 17 00:00:00 2001 From: zadam Date: Wed, 1 Jul 2020 21:33:52 +0200 Subject: [PATCH] non-intrusive logging of sync errors --- src/services/backup.js | 13 +++++-------- src/services/source_id.js | 8 ++------ src/services/sync.js | 6 +++--- src/services/sync_mutex.js | 2 +- src/services/utils.js | 3 ++- 5 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/services/backup.js b/src/services/backup.js index 1810ca028..aae5389f7 100644 --- a/src/services/backup.js +++ b/src/services/backup.js @@ -99,15 +99,12 @@ if (!fs.existsSync(dataDir.BACKUP_DIR)) { fs.mkdirSync(dataDir.BACKUP_DIR, 0o700); } -// hack -setTimeout(() => { - sqlInit.dbReady.then(() => { - setInterval(cls.wrap(regularBackup), 4 * 60 * 60 * 1000); +sqlInit.dbReady.then(() => { + setInterval(cls.wrap(regularBackup), 4 * 60 * 60 * 1000); - // kickoff first backup soon after start up - setTimeout(cls.wrap(regularBackup), 5 * 60 * 1000); - }); -}, 5000); + // kickoff first backup soon after start up + setTimeout(cls.wrap(regularBackup), 5 * 60 * 1000); +}); module.exports = { backupNow, diff --git a/src/services/source_id.js b/src/services/source_id.js index c7496af17..bdffb92e9 100644 --- a/src/services/source_id.js +++ b/src/services/source_id.js @@ -2,6 +2,7 @@ const utils = require('./utils'); const dateUtils = require('./date_utils'); const log = require('./log'); const sql = require('./sql'); +const sqlInit = require('./sql_init'); const cls = require('./cls'); function saveSourceId(sourceId) { @@ -46,12 +47,7 @@ function isLocalSourceId(srcId) { const currentSourceId = createSourceId(); -// very ugly -setTimeout(() => { - const sqlInit = require('./sql_init'); - - sqlInit.dbReady.then(cls.wrap(() => saveSourceId(currentSourceId))); -}, 5000); +sqlInit.dbReady.then(cls.wrap(() => saveSourceId(currentSourceId))); function getCurrentSourceId() { return currentSourceId; diff --git a/src/services/sync.js b/src/services/sync.js index afe95857c..376fd7aec 100644 --- a/src/services/sync.js +++ b/src/services/sync.js @@ -87,7 +87,7 @@ async function login() { await setupService.sendSeedToSyncServer(); } - return doLogin(); + return await doLogin(); } async function doLogin() { @@ -257,7 +257,7 @@ async function checkContentHash(syncContext) { return failedChecks.length > 0; } -function syncRequest(syncContext, method, requestPath, body) { +async function syncRequest(syncContext, method, requestPath, body) { const timeout = syncOptions.getSyncTimeout(); const opts = { @@ -269,7 +269,7 @@ function syncRequest(syncContext, method, requestPath, body) { proxy: proxyToggle ? syncOptions.getSyncProxy() : null }; - return utils.timeLimit(request.exec(opts), timeout); + return await utils.timeLimit(request.exec(opts), timeout); } const primaryKeys = { diff --git a/src/services/sync_mutex.js b/src/services/sync_mutex.js index 348e4f2e6..819371e80 100644 --- a/src/services/sync_mutex.js +++ b/src/services/sync_mutex.js @@ -10,7 +10,7 @@ async function doExclusively(func) { const releaseMutex = await instance.acquire(); try { - return func(); + return await func(); } finally { releaseMutex(); diff --git a/src/services/utils.js b/src/services/utils.js index 2e7c39bf0..7e4bc76f6 100644 --- a/src/services/utils.js +++ b/src/services/utils.js @@ -244,7 +244,8 @@ function timeLimit(promise, limitMs) { resolved = true; res(result); - }); + }) + .catch(error => rej(error)); setTimeout(() => { if (!resolved) {