From e7450fa0d794798bdd11f9e779be57776de09f0e Mon Sep 17 00:00:00 2001 From: Scott Nonnenberg Date: Thu, 10 Aug 2017 11:16:20 -0700 Subject: [PATCH] Add a max setTimout for expiring messages (over max == immediate) Discovered a user log where expiring message checks were happening constantly. This ensures that a very large timeout doesn't roll over into immediate callbacks. FREEBIE --- js/expiring_messages.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/js/expiring_messages.js b/js/expiring_messages.js index ed3e15faa..887f4c13c 100644 --- a/js/expiring_messages.js +++ b/js/expiring_messages.js @@ -31,8 +31,13 @@ console.log('next message expires', new Date(expires_at).toISOString()); var wait = expires_at - Date.now(); + + // In the past if (wait < 0) { wait = 0; } + // Too far in the future, since it's limited to a 32-bit value + if (wait > 2147483647) { wait = 2147483647; } + clearTimeout(timeout); timeout = setTimeout(destroyExpiredMessages, wait); });