From 8a57960c6e4af3d6364f59aed3e4b890358c75a0 Mon Sep 17 00:00:00 2001 From: zadam Date: Tue, 28 Jul 2020 23:29:12 +0200 Subject: [PATCH] tweaks in sync timeout handling --- src/services/options_init.js | 4 ++-- src/services/sync.js | 5 ++++- src/services/utils.js | 5 ++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/services/options_init.js b/src/services/options_init.js index ad5b509b6..b31b41f94 100644 --- a/src/services/options_init.js +++ b/src/services/options_init.js @@ -51,7 +51,7 @@ async function initNotSyncedOptions(initialized, startNotePath = 'root', opts = await optionService.createOption('theme', opts.theme || 'white', false); await optionService.createOption('syncServerHost', opts.syncServerHost || '', false); - await optionService.createOption('syncServerTimeout', '5000', false); + await optionService.createOption('syncServerTimeout', '60000', false); await optionService.createOption('syncProxy', opts.syncProxy || '', false); } @@ -116,4 +116,4 @@ module.exports = { initSyncedOptions, initNotSyncedOptions, initStartupOptions -}; \ No newline at end of file +}; diff --git a/src/services/sync.js b/src/services/sync.js index 8d1425637..30ba41053 100644 --- a/src/services/sync.js +++ b/src/services/sync.js @@ -132,6 +132,9 @@ async function pullSync(syncContext) { const startDate = Date.now(); const resp = await syncRequest(syncContext, 'GET', changesUri); + + const pulledDate = Date.now(); + stats.outstandingPulls = resp.maxSyncId - lastSyncedPull; if (stats.outstandingPulls < 0) { @@ -162,7 +165,7 @@ async function pullSync(syncContext) { await setLastSyncedPull(rows[rows.length - 1].sync.id); }); - log.info(`Pulled and updated ${rows.length} changes from ${changesUri} in ${Date.now() - startDate}ms`); + log.info(`Pulled ${rows.length} changes in ${pulledDate - startDate}ms from ${changesUri} and applied them in ${Date.now() - pulledDate}ms`); } if (appliedPulls > 0) { diff --git a/src/services/utils.js b/src/services/utils.js index 5a1395034..78942a680 100644 --- a/src/services/utils.js +++ b/src/services/utils.js @@ -218,6 +218,9 @@ function formatDownloadTitle(filename, type, mime) { } function timeLimit(promise, limitMs) { + // better stack trace if created outside of promise + const error = new Error('Process exceeded time limit ' + limitMs); + return new Promise((res, rej) => { let resolved = false; @@ -229,7 +232,7 @@ function timeLimit(promise, limitMs) { setTimeout(() => { if (!resolved) { - rej(new Error('Process exceeded time limit ' + limitMs)); + rej(error); } }, limitMs); });