From 7b3ed2dcbf67b126c277983de907a18d1ca4a2a6 Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Mon, 19 Oct 2020 11:08:16 -0400 Subject: [PATCH] Catch exceptions thrown while pruning missing peers. --- .../textsecuregcm/push/ClientPresenceManager.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/push/ClientPresenceManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/ClientPresenceManager.java index a165725cf..47062300b 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/push/ClientPresenceManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/push/ClientPresenceManager.java @@ -115,7 +115,13 @@ public class ClientPresenceManager extends RedisClusterPubSubAdapter connection.sync().sadd(MANAGER_SET_KEY, managerId)); - pruneMissingPeersFuture = scheduledExecutorService.scheduleAtFixedRate(this::pruneMissingPeers, new Random().nextInt(PRUNE_PEERS_INTERVAL_SECONDS), PRUNE_PEERS_INTERVAL_SECONDS, TimeUnit.SECONDS); + pruneMissingPeersFuture = scheduledExecutorService.scheduleAtFixedRate(() -> { + try { + pruneMissingPeers(); + } catch (final Throwable t) { + log.warn("Failed to prune missing peers", t); + } + }, new Random().nextInt(PRUNE_PEERS_INTERVAL_SECONDS), PRUNE_PEERS_INTERVAL_SECONDS, TimeUnit.SECONDS); } @Override