From 1fb88271e57e50791d2c38867ffbf0b2c958301f Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Thu, 7 Dec 2023 13:07:17 -0500 Subject: [PATCH] Invalidate cache entries for accounts after successfully adding devices --- .../whispersystems/textsecuregcm/storage/AccountsManager.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountsManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountsManager.java index 0f90809b4..591791cbc 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountsManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountsManager.java @@ -292,6 +292,8 @@ public class AccountsManager { .thenCompose(ignored -> accounts.updateTransactionallyAsync(account, additionalWriteItems)) .thenApply(ignored -> new Pair<>(account, account.getDevice(nextDeviceId).orElseThrow())); }) + .thenCompose(updatedAccountAndDevice -> redisDeleteAsync(updatedAccountAndDevice.first()) + .thenApply(ignored -> updatedAccountAndDevice)) .exceptionallyCompose(throwable -> { if (ExceptionUtils.unwrap(throwable) instanceof ContestedOptimisticLockException && retries > 0) { return addDevice(accountIdentifier, deviceSpec, retries - 1);