Delete DynamoDB accounts with invalid UUIDs in AccountsManager#create

This commit is contained in:
Chris Eager 2021-08-12 16:47:51 -05:00 committed by Chris Eager
parent 5c68d83a93
commit 2e28fb97a4
2 changed files with 10 additions and 3 deletions

View File

@ -260,9 +260,11 @@ public class AccountsDynamoDb extends AbstractDynamoDbStore implements AccountSt
@Override @Override
public void delete(UUID uuid) { public void delete(UUID uuid) {
DELETE_TIMER.record(() -> { DELETE_TIMER.record(() -> delete(uuid, true));
delete(uuid, true); }
});
public void deleteInvalidMigration(UUID uuid) {
DELETE_TIMER.record(() -> delete(uuid, false));
} }
public AccountCrawlChunk getAllFrom(final UUID from, final int maxCount, final int pageSize) { public AccountCrawlChunk getAllFrom(final UUID from, final int maxCount, final int pageSize) {

View File

@ -185,7 +185,12 @@ public class AccountsManager {
(databaseResult, dynamoResult) -> { (databaseResult, dynamoResult) -> {
if (!account.getUuid().equals(actualUuid)) { if (!account.getUuid().equals(actualUuid)) {
// This is expected towards the beginning of the background migration, as Dynamo wont
// have many accounts available for re-registration
logger.warn("dynamoCreate() did not return correct UUID"); logger.warn("dynamoCreate() did not return correct UUID");
accountsDynamoDb.deleteInvalidMigration(account.getUuid());
return Optional.of("dynamoIncorrectUUID");
} }
if (databaseResult.equals(dynamoResult)) { if (databaseResult.equals(dynamoResult)) {