From ecd6b0174a32f17bf4a24fd291af438f49ed5edc Mon Sep 17 00:00:00 2001 From: Chris Eager Date: Tue, 29 Aug 2023 14:44:35 -0500 Subject: [PATCH] Add timeouts to crawl chunk `join()`s --- .../whispersystems/textsecuregcm/storage/AccountCleaner.java | 4 +++- .../textsecuregcm/storage/PushFeedbackProcessor.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountCleaner.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountCleaner.java index 99268c396..c8f38c3b4 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountCleaner.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountCleaner.java @@ -61,7 +61,9 @@ protected void onCrawlChunk(Optional fromUuid, List chunkAccounts .toList(); try { - CompletableFuture.allOf(deletionFutures.toArray(new CompletableFuture[0])).join(); + CompletableFuture.allOf(deletionFutures.toArray(new CompletableFuture[0])) + .orTimeout(10, TimeUnit.MINUTES) + .join(); } catch (final Exception e) { log.debug("Failed to delete one or more accounts in chunk", e); } diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/PushFeedbackProcessor.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PushFeedbackProcessor.java index 2fbff4c06..4e4173f08 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/PushFeedbackProcessor.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PushFeedbackProcessor.java @@ -112,7 +112,9 @@ protected void onCrawlChunk(Optional fromUuid, List chunkAccounts .toList(); try { - CompletableFuture.allOf(updateFutures.toArray(new CompletableFuture[0])).join(); + CompletableFuture.allOf(updateFutures.toArray(new CompletableFuture[0])) + .orTimeout(10, TimeUnit.MINUTES) + .join(); } catch (final Exception e) { log.debug("Failed to update one or more accounts in chunk", e); }