Skip to content

Commit 9e322c4

Browse files
author
Rahul Karajgikar
committed
fix targetsbynode logic
Signed-off-by: Rahul Karajgikar <karajgik@amazon.com>
1 parent 1b9ae7c commit 9e322c4

File tree

6 files changed

+23
-2
lines changed

6 files changed

+23
-2
lines changed

server/src/main/java/org/opensearch/cluster/NodeConnectionsService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,9 @@ public void disconnectFromNodesExcept(DiscoveryNodes discoveryNodes) {
182182
// to avoid permanently blocking node joins
183183
// This situation should ideally not happen, this is just for extra safety
184184
transportService.removePendingDisconnections(
185-
targetsByNode.keySet()
185+
transportService.getPendingDisconnections()
186186
.stream()
187-
.filter(discoveryNode -> !discoveryNodes.nodeExists(discoveryNode))
187+
.filter(discoveryNode -> !discoveryNodes.nodeExists(discoveryNode) && !targetsByNode.containsKey(discoveryNode))
188188
.collect(Collectors.toSet())
189189
);
190190
}

server/src/main/java/org/opensearch/transport/ClusterConnectionManager.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,11 @@ public void disconnectFromNode(DiscoveryNode node) {
247247
logger.debug("Removed node [{}] from pending disconnections list", node);
248248
}
249249

250+
@Override
251+
public Set<DiscoveryNode> getPendingDisconnections() {
252+
return pendingDisconnections;
253+
}
254+
250255
@Override
251256
public void setPendingDisconnection(DiscoveryNode node) {
252257
logger.debug("marking disconnection as pending for node: [{}]", node);

server/src/main/java/org/opensearch/transport/ConnectionManager.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ void connectToNode(
6565

6666
void disconnectFromNode(DiscoveryNode node);
6767

68+
Set<DiscoveryNode> getPendingDisconnections();
69+
6870
void setPendingDisconnection(DiscoveryNode node);
6971

7072
void removePendingDisconnection(DiscoveryNode node);

server/src/main/java/org/opensearch/transport/RemoteConnectionManager.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,11 @@ public void disconnectFromNode(DiscoveryNode node) {
114114
delegate.disconnectFromNode(node);
115115
}
116116

117+
@Override
118+
public Set<DiscoveryNode> getPendingDisconnections() {
119+
return delegate.getPendingDisconnections();
120+
}
121+
117122
@Override
118123
public void setPendingDisconnection(DiscoveryNode node) {
119124
delegate.setPendingDisconnection(node);

server/src/main/java/org/opensearch/transport/TransportService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -773,6 +773,10 @@ public void disconnectFromNode(DiscoveryNode node) {
773773
connectionManager.disconnectFromNode(node);
774774
}
775775

776+
public Set<DiscoveryNode> getPendingDisconnections() {
777+
return connectionManager.getPendingDisconnections();
778+
}
779+
776780
public void setPendingDisconnections(Set<DiscoveryNode> nodes) {
777781
nodes.forEach(connectionManager::setPendingDisconnection);
778782
}

test/framework/src/main/java/org/opensearch/test/transport/StubbableConnectionManager.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,11 @@ public void disconnectFromNode(DiscoveryNode node) {
123123
delegate.disconnectFromNode(node);
124124
}
125125

126+
@Override
127+
public Set<DiscoveryNode> getPendingDisconnections() {
128+
return delegate.getPendingDisconnections();
129+
}
130+
126131
@Override
127132
public void setPendingDisconnection(DiscoveryNode node) {
128133
delegate.setPendingDisconnection(node);

0 commit comments

Comments
 (0)