This is an automated email from the ASF dual-hosted git repository.

vpyatkov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new d0388362682 IGNITE-25877 Critical system error caused by failure in 
updating data nodes history and timers on scale up timer trigger (#6349)
d0388362682 is described below

commit d0388362682ebb58ab84021341e93354aecd75bb
Author: Vladislav Pyatkov <[email protected]>
AuthorDate: Fri Aug 1 15:10:53 2025 +0300

    IGNITE-25877 Critical system error caused by failure in updating data nodes 
history and timers on scale up timer trigger (#6349)
---
 .../java/org/apache/ignite/internal/Cluster.java          | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git 
a/modules/runner/src/testFixtures/java/org/apache/ignite/internal/Cluster.java 
b/modules/runner/src/testFixtures/java/org/apache/ignite/internal/Cluster.java
index ddfd382ad7f..b1d9ae4b152 100644
--- 
a/modules/runner/src/testFixtures/java/org/apache/ignite/internal/Cluster.java
+++ 
b/modules/runner/src/testFixtures/java/org/apache/ignite/internal/Cluster.java
@@ -113,6 +113,8 @@ public class Cluster {
     /** Indices of nodes that have been knocked out. */
     private final Set<Integer> knockedOutNodesIndices = 
ConcurrentHashMap.newKeySet();
 
+    private List<IgniteServer> metaStorageAndCmgNodes = List.of();
+
     /**
      * Creates a new cluster.
      */
@@ -225,7 +227,7 @@ public class Cluster {
                 .mapToObj(nodeIndex -> startEmbeddedNode(testInfo, nodeIndex, 
nodeBootstrapConfigTemplate, nodeBootstrapConfigUpdater))
                 .collect(toList());
 
-        List<IgniteServer> metaStorageAndCmgNodes = Arrays.stream(cmgNodes)
+        metaStorageAndCmgNodes = Arrays.stream(cmgNodes)
                 .mapToObj(nodeRegistrations::get)
                 .map(ServerRegistration::server)
                 .collect(toList());
@@ -601,7 +603,16 @@ public class Cluster {
         Collections.fill(igniteServers, null);
         Collections.fill(nodes, null);
 
-        
serversToStop.parallelStream().filter(Objects::nonNull).forEach(IgniteServer::shutdown);
+        // TODO: IGNITE-26085 Allow stopping nodes in any order. Currently, MS 
nodes stop only at the last one.
+        serversToStop.parallelStream()
+                .filter(igniteServer -> igniteServer != null && 
!metaStorageAndCmgNodes.contains(igniteServer))
+                .forEach(IgniteServer::shutdown);
+
+        metaStorageAndCmgNodes.parallelStream()
+                .filter(igniteServer -> igniteServer != null && 
serversToStop.contains(igniteServer))
+                .forEach(IgniteServer::shutdown);
+
+        metaStorageAndCmgNodes = List.of();
 
         LOG.info("Shut the cluster down");
     }

Reply via email to