diff --git a/redisson/src/main/java/org/redisson/connection/ClientConnectionsEntry.java b/redisson/src/main/java/org/redisson/connection/ClientConnectionsEntry.java
index 8f73953cb..ebe249ddc 100644
--- a/redisson/src/main/java/org/redisson/connection/ClientConnectionsEntry.java
+++ b/redisson/src/main/java/org/redisson/connection/ClientConnectionsEntry.java
@@ -259,6 +259,24 @@ public class ClientConnectionsEntry {
         freeSubscribeConnectionsCounter.release();
     }
 
+    public void closeAllConnections() {
+        synchronized (this) {
+            for (RedisConnection connection : this.getAllConnections()) {
+                if (!connection.isClosed()) {
+                    connection.closeAsync();
+                }
+            }
+            this.getAllConnections().clear();
+
+            for (RedisConnection connection : this.getAllSubscribeConnections()) {
+                if (!connection.isClosed()) {
+                    connection.closeAsync();
+                }
+            }
+            this.getAllSubscribeConnections().clear();
+        }
+    }
+
     @Override
     public String toString() {
         return "[freeSubscribeConnectionsAmount=" + freeSubscribeConnections.size()
diff --git a/redisson/src/main/java/org/redisson/connection/balancer/LoadBalancerManager.java b/redisson/src/main/java/org/redisson/connection/balancer/LoadBalancerManager.java
index 08d69e0df..64d5baf77 100644
--- a/redisson/src/main/java/org/redisson/connection/balancer/LoadBalancerManager.java
+++ b/redisson/src/main/java/org/redisson/connection/balancer/LoadBalancerManager.java
@@ -153,28 +153,14 @@ public class LoadBalancerManager {
                         private AtomicBoolean initConnError = new AtomicBoolean(false);
                         @Override
                         public void accept(Void r, Throwable ex) {
-                            synchronized (this) {
-                                if (ex == null) {
-                                    listener.decCounter();
-                                } else {
-                                    if (!initConnError.compareAndSet(false, true)) {
-                                        return;
-                                    }
-                                    for (RedisConnection connection : entry.getAllConnections()) {
-                                        if (!connection.isClosed()) {
-                                            connection.closeAsync();
-                                        }
-                                    }
-                                    entry.getAllConnections().clear();
-
-                                    for (RedisConnection connection : entry.getAllSubscribeConnections()) {
-                                        if (!connection.isClosed()) {
-                                            connection.closeAsync();
-                                        }
-                                    }
-                                    entry.getAllSubscribeConnections().clear();
-                                    entry.setInitialized(false);
+                            if (ex == null) {
+                                listener.decCounter();
+                            } else {
+                                if (!initConnError.compareAndSet(false, true)) {
+                                    return;
                                 }
+                                entry.closeAllConnections();
+                                entry.setInitialized(false);
                             }
                         }
                     };
@@ -187,7 +173,7 @@ public class LoadBalancerManager {
         }
         return false;
     }
-    
+
     public ClientConnectionsEntry freeze(RedisURI address, FreezeReason freezeReason) {
         ClientConnectionsEntry connectionEntry = getEntry(address);
         return freeze(connectionEntry, freezeReason);
diff --git a/redisson/src/main/java/org/redisson/connection/pool/ConnectionPool.java b/redisson/src/main/java/org/redisson/connection/pool/ConnectionPool.java
index f20950110..f5445ab14 100644
--- a/redisson/src/main/java/org/redisson/connection/pool/ConnectionPool.java
+++ b/redisson/src/main/java/org/redisson/connection/pool/ConnectionPool.java
@@ -131,21 +131,9 @@ abstract class ConnectionPool<T extends RedisConnection> {
                             if (initPromise.isDone()) {
                                 return;
                             }
-                            
-                            for (RedisConnection connection : entry.getAllConnections()) {
-                                if (!connection.isClosed()) {
-                                    connection.closeAsync();
-                                }
-                            }
-                            entry.getAllConnections().clear();
-                            
-                            for (RedisConnection connection : entry.getAllSubscribeConnections()) {
-                                if (!connection.isClosed()) {
-                                    connection.closeAsync();
-                                }
-                            }
-                            entry.getAllSubscribeConnections().clear();
-                            
+
+                            entry.closeAllConnections();
+
                             int totalInitializedConnections = minimumIdleSize - initializedConnections.get();
                             String errorMsg;
                             if (totalInitializedConnections == 0) {