From 01b5ae2638350525a829a15aef7631ab3c13aae5 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Wed, 8 May 2019 21:02:09 +0200
Subject: [PATCH] fix: clear timeouts before existing

Closes #3644
---
 lib/manager/travis/package.js | 5 ++++-
 lib/workers/global/index.js   | 4 ++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/lib/manager/travis/package.js b/lib/manager/travis/package.js
index 0ad72ddee5..be01696fc3 100644
--- a/lib/manager/travis/package.js
+++ b/lib/manager/travis/package.js
@@ -50,7 +50,10 @@ for (const data of Object.values(nodeJsSchedule)) {
       const offsetmilliseconds = 1 + fieldDate.getTime() - initTime.getTime();
       // istanbul ignore if
       if (offsetmilliseconds < 10000000000) {
-        setTimeout(generatePolicies, offsetmilliseconds);
+        global.renovateTimers = global.renovateTimers || [];
+        global.renovateTimers.push(
+          setTimeout(generatePolicies, offsetmilliseconds)
+        );
       }
     }
   }
diff --git a/lib/workers/global/index.js b/lib/workers/global/index.js
index f95bb6fcb1..c2bfc8cfa7 100644
--- a/lib/workers/global/index.js
+++ b/lib/workers/global/index.js
@@ -64,6 +64,10 @@ async function start() {
       await repositoryWorker.renovateRepository(repoConfig);
     }
     logger.setMeta({});
+    // istanbul ignore if
+    if (global.renovateTimers) {
+      global.renovateTimers.forEach(timer => clearTimeout(timer));
+    }
     logger.info(`${appName} finished`);
   } catch (err) /* istanbul ignore next */ {
     logger.fatal({ err }, `Fatal error: ${err.message}`);
-- 
GitLab