diff --git a/redisson/src/main/java/org/redisson/command/CommandAsyncService.java b/redisson/src/main/java/org/redisson/command/CommandAsyncService.java index 6f5b304c9..66cc8c183 100644 --- a/redisson/src/main/java/org/redisson/command/CommandAsyncService.java +++ b/redisson/src/main/java/org/redisson/command/CommandAsyncService.java @@ -938,7 +938,8 @@ public class CommandAsyncService implements CommandAsyncExecutor { TimerTask timeoutTask = new TimerTask() { @Override public void run(Timeout timeout) throws Exception { - if (details.getAttempt() < connectionManager.getConfig().getRetryAttempts()) { + if (!details.getAttemptPromise().isDone() + && details.getAttempt() < connectionManager.getConfig().getRetryAttempts()) { if (!details.getAttemptPromise().cancel(false)) { return; }