From 9b3179540f99f5ccd6c3b0bd5f35ab774b5af0e1 Mon Sep 17 00:00:00 2001 From: abraunegg Date: Wed, 30 Oct 2019 06:33:11 +1100 Subject: [PATCH] Revert "Fix unhandled monitor initialisation exception" This reverts commit e1be2b1e55f70b6bb5cd277f6bfcdff2d66b8f2a. --- src/main.d | 132 +++++++++++++++++++++++++---------------------------- 1 file changed, 61 insertions(+), 71 deletions(-) diff --git a/src/main.d b/src/main.d index 9488daa2..80d514f9 100644 --- a/src/main.d +++ b/src/main.d @@ -671,82 +671,72 @@ int main(string[] args) signal(SIGINT, &exitHandler); signal(SIGTERM, &exitHandler); - // attempt to initialise monitor class - try { - m.init(cfg, cfg.getValueLong("verbose") > 0, cfg.getValueBool("skip_symlinks"), cfg.getValueBool("check_nosync")); - } catch (MonitorException e) { - // monitor initialisation failed - log.error("ERROR: ", e.msg); - exit(-1); - } - - //if (!cfg.getValueBool("download_only")) m.init(cfg, cfg.getValueLong("verbose") > 0, cfg.getValueBool("skip_symlinks"), cfg.getValueBool("check_nosync")); - if (!cfg.getValueBool("download_only")) { - // monitor loop - immutable auto checkInterval = dur!"seconds"(cfg.getValueLong("monitor_interval")); - immutable auto logInterval = cfg.getValueLong("monitor_log_frequency"); - immutable auto fullScanFrequency = cfg.getValueLong("monitor_fullscan_frequency"); - auto lastCheckTime = MonoTime.currTime(); - auto logMonitorCounter = 0; - auto fullScanCounter = 0; - bool fullScanRequired = true; - bool syncListConfiguredOverride = false; - while (true) { - if (!cfg.getValueBool("download_only")) m.update(online); - auto currTime = MonoTime.currTime(); - if (currTime - lastCheckTime > checkInterval) { - // log monitor output suppression - logMonitorCounter += 1; - if (logMonitorCounter > logInterval) - logMonitorCounter = 1; - - // full scan of sync_dir - fullScanCounter += 1; - if (fullScanCounter > fullScanFrequency){ - fullScanCounter = 1; - fullScanRequired = true; - if (syncListConfigured) { - syncListConfiguredOverride = true; - } + // initialise the monitor class + if (!cfg.getValueBool("download_only")) m.init(cfg, cfg.getValueLong("verbose") > 0, cfg.getValueBool("skip_symlinks"), cfg.getValueBool("check_nosync")); + // monitor loop + immutable auto checkInterval = dur!"seconds"(cfg.getValueLong("monitor_interval")); + immutable auto logInterval = cfg.getValueLong("monitor_log_frequency"); + immutable auto fullScanFrequency = cfg.getValueLong("monitor_fullscan_frequency"); + auto lastCheckTime = MonoTime.currTime(); + auto logMonitorCounter = 0; + auto fullScanCounter = 0; + bool fullScanRequired = true; + bool syncListConfiguredOverride = false; + while (true) { + if (!cfg.getValueBool("download_only")) m.update(online); + auto currTime = MonoTime.currTime(); + if (currTime - lastCheckTime > checkInterval) { + // log monitor output suppression + logMonitorCounter += 1; + if (logMonitorCounter > logInterval) + logMonitorCounter = 1; + + // full scan of sync_dir + fullScanCounter += 1; + if (fullScanCounter > fullScanFrequency){ + fullScanCounter = 1; + fullScanRequired = true; + if (syncListConfigured) { + syncListConfiguredOverride = true; + } + } + + // log.logAndNotify("DEBUG trying to create checkpoint"); + // auto res = itemdb.db_checkpoint(); + // log.logAndNotify("Checkpoint return: ", res); + // itemdb.dump_open_statements(); + + try { + if (!initSyncEngine(sync)) { + oneDrive.http.shutdown(); + return EXIT_FAILURE; } - - // log.logAndNotify("DEBUG trying to create checkpoint"); - // auto res = itemdb.db_checkpoint(); - // log.logAndNotify("Checkpoint return: ", res); - // itemdb.dump_open_statements(); - try { - if (!initSyncEngine(sync)) { - oneDrive.http.shutdown(); - return EXIT_FAILURE; - } - try { - // perform a --monitor sync - performSync(sync, cfg.getValueString("single_directory"), cfg.getValueBool("download_only"), cfg.getValueBool("local_first"), cfg.getValueBool("upload_only"), (logMonitorCounter == logInterval ? MONITOR_LOG_QUIET : MONITOR_LOG_SILENT), fullScanRequired, syncListConfiguredOverride); - if (!cfg.getValueBool("download_only")) { - // discard all events that may have been generated by the sync - m.update(false); - } - } catch (CurlException e) { - // we already tried three times in the performSync routine - // if we still have problems, then the sync handle might have - // gone stale and we need to re-initialize the sync engine - log.log("Persistent connection errors, reinitializing connection"); - sync.reset(); + // perform a --monitor sync + performSync(sync, cfg.getValueString("single_directory"), cfg.getValueBool("download_only"), cfg.getValueBool("local_first"), cfg.getValueBool("upload_only"), (logMonitorCounter == logInterval ? MONITOR_LOG_QUIET : MONITOR_LOG_SILENT), fullScanRequired, syncListConfiguredOverride); + if (!cfg.getValueBool("download_only")) { + // discard all events that may have been generated by the sync + m.update(false); } } catch (CurlException e) { - log.log("Cannot initialize connection to OneDrive"); + // we already tried three times in the performSync routine + // if we still have problems, then the sync handle might have + // gone stale and we need to re-initialize the sync engine + log.log("Persistent connection errors, reinitializing connection"); + sync.reset(); } - // performSync complete, set lastCheckTime to current time - fullScanRequired = false; - if (syncListConfigured) { - syncListConfiguredOverride = false; - } - lastCheckTime = MonoTime.currTime(); - GC.collect(); - } - Thread.sleep(dur!"msecs"(500)); - } + } catch (CurlException e) { + log.log("Cannot initialize connection to OneDrive"); + } + // performSync complete, set lastCheckTime to current time + fullScanRequired = false; + if (syncListConfigured) { + syncListConfiguredOverride = false; + } + lastCheckTime = MonoTime.currTime(); + GC.collect(); + } + Thread.sleep(dur!"msecs"(500)); } } }