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

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

commit 2c67e31aaf5cb95e1c080a53e660e60140850959
Author: Kirill Tkalenko <tkalkir...@yandex.ru>
AuthorDate: Mon Jun 30 13:11:45 2025 +0300

    IGNITE-25796 debug
---
 .../cluster/management/LocalStateStorage.java      | 24 ++++++++++++++++++++++
 .../raft/ClusterStateStorageManager.java           | 15 ++++++++++++++
 .../ignite/internal/CompatibilityTestBase.java     | 12 ++++++++++-
 .../org/apache/ignite/internal/RunnerNode.java     | 10 ++++++++-
 4 files changed, 59 insertions(+), 2 deletions(-)

diff --git 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/LocalStateStorage.java
 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/LocalStateStorage.java
index a23d88f202b..22805053f39 100644
--- 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/LocalStateStorage.java
+++ 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/LocalStateStorage.java
@@ -22,6 +22,10 @@ import java.util.HashSet;
 import java.util.Set;
 import 
org.apache.ignite.internal.cluster.management.network.messages.CmgMessagesFactory;
 import org.apache.ignite.internal.lang.ByteArray;
+import org.apache.ignite.internal.logger.IgniteLogger;
+import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.tostring.IgniteToStringInclude;
+import org.apache.ignite.internal.tostring.S;
 import org.apache.ignite.internal.util.io.IgniteDataInput;
 import org.apache.ignite.internal.util.io.IgniteDataOutput;
 import org.apache.ignite.internal.vault.VaultEntry;
@@ -41,6 +45,7 @@ class LocalStateStorage {
     static class LocalState {
         private final Set<String> cmgNodeNames;
 
+        @IgniteToStringInclude
         private final ClusterTag clusterTag;
 
         LocalState(Set<String> cmgNodeNames, ClusterTag clusterTag) {
@@ -55,6 +60,11 @@ class LocalStateStorage {
         ClusterTag clusterTag() {
             return clusterTag;
         }
+
+        @Override
+        public String toString() {
+            return S.toString(this);
+        }
     }
 
     private final VaultManager vault;
@@ -63,12 +73,22 @@ class LocalStateStorage {
         this.vault = vault;
     }
 
+    private static final IgniteLogger LOG = 
Loggers.forClass(LocalStateStorage.class);
+
     /**
      * Retrieves the local state.
      *
      * @return Local state.
      */
     @Nullable LocalState getLocalState() {
+        LocalState localState0 = getLocalState0();
+
+        LOG.info(">>>>> LocalStateStorage#getLocalState: {}", localState0);
+
+        return localState0;
+    }
+
+    private @Nullable LocalState getLocalState0() {
         VaultEntry entry = vault.get(CMG_STATE_VAULT_KEY);
 
         if (entry == null) {
@@ -85,6 +105,8 @@ class LocalStateStorage {
      */
     void saveLocalState(LocalState state) {
         vault.put(CMG_STATE_VAULT_KEY, VersionedSerialization.toBytes(state, 
LocalStateSerializer.INSTANCE));
+
+        LOG.info(">>>>> LocalStateStorage#saveLocalState: {}", new 
Exception(), state);
     }
 
     /**
@@ -92,6 +114,8 @@ class LocalStateStorage {
      */
     void clear() {
         vault.remove(CMG_STATE_VAULT_KEY);
+
+        LOG.info(">>>>> LocalStateStorage#clear");
     }
 
     private static class LocalStateSerializer extends 
VersionedSerializer<LocalState> {
diff --git 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/ClusterStateStorageManager.java
 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/ClusterStateStorageManager.java
index 895cec94606..886f2f55ad5 100644
--- 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/ClusterStateStorageManager.java
+++ 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/ClusterStateStorageManager.java
@@ -31,6 +31,8 @@ import 
org.apache.ignite.internal.cluster.management.ClusterState;
 import 
org.apache.ignite.internal.cluster.management.ClusterStatePersistentSerializer;
 import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
 import 
org.apache.ignite.internal.cluster.management.topology.api.LogicalNodeSerializer;
+import org.apache.ignite.internal.logger.IgniteLogger;
+import org.apache.ignite.internal.logger.Loggers;
 import org.apache.ignite.internal.versioned.VersionedSerialization;
 import org.jetbrains.annotations.Nullable;
 
@@ -52,6 +54,8 @@ public class ClusterStateStorageManager {
         this.storage = storage;
     }
 
+    private static final IgniteLogger LOG = 
Loggers.forClass(ClusterStateStorageManager.class);
+
     /**
      * Retrieves the current CMG state or {@code null} if it has not been 
initialized.
      *
@@ -59,6 +63,15 @@ public class ClusterStateStorageManager {
      */
     @Nullable
     public ClusterState getClusterState() {
+        ClusterState clusterState0 = getClusterState0();
+
+        LOG.info(">>>>> ClusterStateStorageManager#getClusterState: {}", 
clusterState0);
+
+        return clusterState0;
+    }
+
+    @Nullable
+    private ClusterState getClusterState0() {
         byte[] value = storage.get(CMG_STATE_KEY);
 
         return value == null ? null : VersionedSerialization.fromBytes(value, 
ClusterStatePersistentSerializer.INSTANCE);
@@ -71,6 +84,8 @@ public class ClusterStateStorageManager {
      */
     public void putClusterState(ClusterState state) {
         storage.put(CMG_STATE_KEY, VersionedSerialization.toBytes(state, 
ClusterStatePersistentSerializer.INSTANCE));
+
+        LOG.info(">>>>> ClusterStateStorageManager#putClusterState: {}", new 
Exception(), state);
     }
 
     /**
diff --git 
a/modules/compatibility-tests/src/testFixtures/java/org/apache/ignite/internal/CompatibilityTestBase.java
 
b/modules/compatibility-tests/src/testFixtures/java/org/apache/ignite/internal/CompatibilityTestBase.java
index e6f2b024bab..8e683fb39ba 100644
--- 
a/modules/compatibility-tests/src/testFixtures/java/org/apache/ignite/internal/CompatibilityTestBase.java
+++ 
b/modules/compatibility-tests/src/testFixtures/java/org/apache/ignite/internal/CompatibilityTestBase.java
@@ -82,7 +82,7 @@ public abstract class CompatibilityTestBase extends 
BaseIgniteAbstractTest {
     @SuppressWarnings("unused")
     @BeforeParameterizedClassInvocation
     void startCluster(String baseVersion, TestInfo testInfo) {
-        log.info("Starting nodes for base version: {}", baseVersion);
+        log.info("Starting nodes for base version: [baseVersion={}, 
workDir={}]}", baseVersion, workDir);
 
         ClusterConfiguration clusterConfiguration = 
ClusterConfiguration.builder(testInfo, workDir)
                 
.defaultNodeBootstrapConfigTemplate(NODE_BOOTSTRAP_CFG_TEMPLATE)
@@ -93,16 +93,26 @@ public abstract class CompatibilityTestBase extends 
BaseIgniteAbstractTest {
         cluster = new IgniteCluster(clusterConfiguration);
         cluster.start(baseVersion, nodesCount);
 
+        log.info(">>>>> startCluster, after start nodes: [baseVersion={}, 
nodesCount={}]", baseVersion, nodesCount);
+
         cluster.init(this::configureInitParameters);
 
+        log.info(">>>>> startCluster, after init: [baseVersion={}, 
nodesCount={}]", baseVersion, nodesCount);
+
         try (IgniteClient client = cluster.createClient()) {
             setupBaseVersion(client);
         }
 
+        log.info(">>>>> startCluster, after start client: [baseVersion={}, 
nodesCount={}]", baseVersion, nodesCount);
+
         if (restartWithCurrentEmbeddedVersion()) {
             cluster.stop();
 
+            log.info(">>>>> startCluster, after cluster stop: [baseVersion={}, 
nodesCount={}]", baseVersion, nodesCount);
+
             cluster.startEmbedded(nodesCount);
+
+            log.info(">>>>> startCluster, after start embeded: 
[baseVersion={}, nodesCount={}]", baseVersion, nodesCount);
         }
     }
 
diff --git 
a/modules/compatibility-tests/src/testFixtures/java/org/apache/ignite/internal/RunnerNode.java
 
b/modules/compatibility-tests/src/testFixtures/java/org/apache/ignite/internal/RunnerNode.java
index 3814844762f..abeec668107 100644
--- 
a/modules/compatibility-tests/src/testFixtures/java/org/apache/ignite/internal/RunnerNode.java
+++ 
b/modules/compatibility-tests/src/testFixtures/java/org/apache/ignite/internal/RunnerNode.java
@@ -28,6 +28,7 @@ import java.io.InputStream;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Map;
+import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Supplier;
 import java.util.stream.Collectors;
@@ -128,6 +129,8 @@ public class RunnerNode {
     public void stop() {
         process.destroy();
 
+        CompletableFuture<Process> processCompletableFuture = process.onExit();
+
         try {
             if (!process.waitFor(30, TimeUnit.SECONDS)) {
                 processLogger.info("Process did not respond to destroy, 
destroying forcibly: {}", nodeName);
@@ -140,8 +143,10 @@ public class RunnerNode {
                 }
             }
 
+            processCompletableFuture.get(30, TimeUnit.SECONDS);
+
             processLogger.info("Process stopped: {}", nodeName);
-        } catch (InterruptedException e) {
+        } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }
@@ -193,6 +198,9 @@ public class RunnerNode {
                 "--work-dir", workDir.toString(),
                 "--config-path", configPath.toString()
         );
+
+        pb.redirectErrorStream(true);
+
         return pb.start();
     }
 }

Reply via email to