From 40bac000ab018812f48604ef504a18b929168c77 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Fri, 22 Mar 2019 22:14:52 -0700 Subject: [PATCH] Evict APN retry job after 90 days unseen --- .../textsecuregcm/push/ApnFallbackManager.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/ApnFallbackManager.java b/src/main/java/org/whispersystems/textsecuregcm/push/ApnFallbackManager.java index 7534a491e..f319e8a29 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/push/ApnFallbackManager.java +++ b/src/main/java/org/whispersystems/textsecuregcm/push/ApnFallbackManager.java @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Optional; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import static com.codahale.metrics.MetricRegistry.name; @@ -147,6 +148,14 @@ public class ApnFallbackManager implements Managed, Runnable { continue; } + long deviceLastSeen = device.get().getLastSeen(); + + if (deviceLastSeen < System.currentTimeMillis() - TimeUnit.DAYS.toMillis(90)) { + logger.info("Evicting retry after 90 days: " + account.get().getNumber() + ", " + device.get().getId()); + removeOperation.remove(account.get(), device.get()); + continue; + } + apnSender.sendMessage(new ApnMessage(apnId, separated.get().first(), separated.get().second(), true)); retry.mark(); }