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

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

commit dc873d39fcc0d465a5e54fce851d11cfeeaf1c0a
Author: Kirill Tkalenko <[email protected]>
AuthorDate: Mon Nov 24 16:57:24 2025 +0300

    IGNITE-26849 wip
---
 .../ItZonePartitionRaftListenerRecoveryTest.java   |  8 ++-
 .../PartitionReplicaLifecycleManager.java          |  3 +-
 .../partition/replicator/ZoneResourcesManager.java | 11 ++++-
 .../replicator/raft/snapshot/LogStorageAccess.java | 23 +++++++++
 .../raft/snapshot/LogStorageAccessImpl.java        | 36 ++++++++++++++
 .../raft/snapshot/PartitionSnapshotStorage.java    | 17 +++++--
 .../snapshot/incoming/IncomingSnapshotCopier.java  | 11 +++++
 .../PartitionReplicaLifecycleManagerTest.java      | 57 +++++++++++-----------
 .../replicator/ZoneResourcesManagerTest.java       |  5 +-
 .../PartitionSnapshotStorageFactoryTest.java       |  3 +-
 .../snapshot/PartitionSnapshotStorageTest.java     |  3 +-
 .../incoming/IncomingSnapshotCopierTest.java       |  8 ++-
 .../outgoing/OutgoingSnapshotReaderTest.java       |  4 +-
 .../internal/table/distributed/TableManager.java   |  4 +-
 14 files changed, 151 insertions(+), 42 deletions(-)

diff --git 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/raft/ItZonePartitionRaftListenerRecoveryTest.java
 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/raft/ItZonePartitionRaftListenerRecoveryTest.java
index bdcb3605a2c..df3fc9078ea 100644
--- 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/raft/ItZonePartitionRaftListenerRecoveryTest.java
+++ 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/raft/ItZonePartitionRaftListenerRecoveryTest.java
@@ -79,6 +79,7 @@ import org.apache.ignite.internal.network.StaticNodeFinder;
 import 
org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessagesFactory;
 import 
org.apache.ignite.internal.partition.replicator.network.command.TimedBinaryRowMessage;
 import 
org.apache.ignite.internal.partition.replicator.network.command.UpdateCommand;
+import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.LogStorageAccessImpl;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionMvStorageAccess;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionSnapshotStorage;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionSnapshotStorageFactory;
@@ -98,6 +99,7 @@ import 
org.apache.ignite.internal.raft.server.RaftGroupOptions;
 import org.apache.ignite.internal.raft.service.RaftGroupService;
 import org.apache.ignite.internal.raft.storage.LogStorageFactory;
 import org.apache.ignite.internal.raft.util.SharedLogStorageFactoryUtils;
+import org.apache.ignite.internal.replicator.ReplicaManager;
 import org.apache.ignite.internal.replicator.ZonePartitionId;
 import org.apache.ignite.internal.replicator.message.ReplicaMessagesFactory;
 import org.apache.ignite.internal.schema.BinaryRowImpl;
@@ -236,7 +238,8 @@ class ItZonePartitionRaftListenerRecoveryTest extends 
IgniteAbstractTest {
             @InjectConfiguration SystemLocalConfiguration 
systemLocalConfiguration,
             @InjectExecutorService ScheduledExecutorService 
scheduledExecutorService,
             @Mock Catalog catalog,
-            @Mock CatalogIndexDescriptor catalogIndexDescriptor
+            @Mock CatalogIndexDescriptor catalogIndexDescriptor,
+            @Mock ReplicaManager replicaManager
     ) {
         when(catalogService.activeCatalog(anyLong())).thenReturn(catalog);
         
when(catalog.indexes(anyInt())).thenReturn(List.of(catalogIndexDescriptor));
@@ -311,7 +314,8 @@ class ItZonePartitionRaftListenerRecoveryTest extends 
IgniteAbstractTest {
                 new 
PartitionTxStateAccessImpl(txStateStorage.getOrCreatePartitionStorage(PARTITION_ID.partitionId())),
                 catalogService,
                 failureProcessor,
-                executor
+                executor,
+                new LogStorageAccessImpl(replicaManager)
         );
     }
 
diff --git 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java
 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java
index b53c7d1a315..79d657b176d 100644
--- 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java
+++ 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java
@@ -332,7 +332,8 @@ public class PartitionReplicaLifecycleManager extends
                         topologyService,
                         catalogService,
                         failureProcessor,
-                        partitionOperationsExecutor
+                        partitionOperationsExecutor,
+                        replicaMgr
                 )
         );
     }
diff --git 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/ZoneResourcesManager.java
 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/ZoneResourcesManager.java
index e2298bba0e0..a4e314c7913 100644
--- 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/ZoneResourcesManager.java
+++ 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/ZoneResourcesManager.java
@@ -30,10 +30,12 @@ import org.apache.ignite.internal.failure.FailureProcessor;
 import org.apache.ignite.internal.hlc.HybridTimestamp;
 import org.apache.ignite.internal.network.TopologyService;
 import 
org.apache.ignite.internal.partition.replicator.raft.ZonePartitionRaftListener;
+import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.LogStorageAccessImpl;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionSnapshotStorage;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionTxStateAccessImpl;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.ZonePartitionKey;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.outgoing.OutgoingSnapshotsManager;
+import org.apache.ignite.internal.replicator.ReplicaManager;
 import org.apache.ignite.internal.replicator.ZonePartitionId;
 import org.apache.ignite.internal.tx.TxManager;
 import 
org.apache.ignite.internal.tx.storage.state.ThreadAssertingTxStateStorage;
@@ -66,6 +68,8 @@ public class ZoneResourcesManager implements 
ManuallyCloseable {
 
     private final Executor partitionOperationsExecutor;
 
+    private final ReplicaManager replicaManager;
+
     /** Map from zone IDs to their resource holders. */
     private final Map<Integer, ZoneResources> resourcesByZoneId = new 
ConcurrentHashMap<>();
 
@@ -78,7 +82,8 @@ public class ZoneResourcesManager implements 
ManuallyCloseable {
             TopologyService topologyService,
             CatalogService catalogService,
             FailureProcessor failureProcessor,
-            Executor partitionOperationsExecutor
+            Executor partitionOperationsExecutor,
+            ReplicaManager replicaManager
     ) {
         this.sharedTxStateStorage = sharedTxStateStorage;
         this.txManager = txManager;
@@ -87,6 +92,7 @@ public class ZoneResourcesManager implements 
ManuallyCloseable {
         this.catalogService = catalogService;
         this.failureProcessor = failureProcessor;
         this.partitionOperationsExecutor = partitionOperationsExecutor;
+        this.replicaManager = replicaManager;
     }
 
     ZonePartitionResources allocateZonePartitionResources(
@@ -121,7 +127,8 @@ public class ZoneResourcesManager implements 
ManuallyCloseable {
                 new PartitionTxStateAccessImpl(txStatePartitionStorage),
                 catalogService,
                 failureProcessor,
-                partitionOperationsExecutor
+                partitionOperationsExecutor,
+                new LogStorageAccessImpl(replicaManager)
         );
 
         var zonePartitionResources = new ZonePartitionResources(
diff --git 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/LogStorageAccess.java
 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/LogStorageAccess.java
new file mode 100644
index 00000000000..1d05876a491
--- /dev/null
+++ 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/LogStorageAccess.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.partition.replicator.raft.snapshot;
+
+/** No doc yet. */
+// TODO: IGNITE-26849 Добаить документацию и методы
+public interface LogStorageAccess {
+}
diff --git 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/LogStorageAccessImpl.java
 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/LogStorageAccessImpl.java
new file mode 100644
index 00000000000..81307c3f74b
--- /dev/null
+++ 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/LogStorageAccessImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.partition.replicator.raft.snapshot;
+
+import org.apache.ignite.internal.replicator.ReplicaManager;
+import org.apache.ignite.internal.replicator.ReplicationGroupId;
+
+/** No doc yet. */
+// TODO: IGNITE-26849 Добаить документацию и методы
+public class LogStorageAccessImpl implements LogStorageAccess {
+    private final ReplicaManager replicaManager;
+
+    /** Constructor. */
+    public LogStorageAccessImpl(ReplicaManager replicaManager) {
+        this.replicaManager = replicaManager;
+    }
+
+    public void destroy(ReplicationGroupId replicationGroupId) throws 
Exception {
+        replicaManager.destroyReplicationProtocolStorages(replicationGroupId, 
false);
+    }
+}
diff --git 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorage.java
 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorage.java
index be57c369751..f1b390bacab 100644
--- 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorage.java
+++ 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorage.java
@@ -98,6 +98,8 @@ public class PartitionSnapshotStorage {
 
     private final long waitForMetadataCatchupMs;
 
+    private final LogStorageAccess logStorage;
+
     /** Constructor. */
     public PartitionSnapshotStorage(
             PartitionKey partitionKey,
@@ -106,7 +108,8 @@ public class PartitionSnapshotStorage {
             PartitionTxStateAccess txState,
             CatalogService catalogService,
             FailureProcessor failureProcessor,
-            Executor incomingSnapshotsExecutor
+            Executor incomingSnapshotsExecutor,
+            LogStorageAccess logStorage
     ) {
         this(
                 partitionKey,
@@ -116,7 +119,8 @@ public class PartitionSnapshotStorage {
                 catalogService,
                 failureProcessor,
                 incomingSnapshotsExecutor,
-                DEFAULT_WAIT_FOR_METADATA_CATCHUP_MS
+                DEFAULT_WAIT_FOR_METADATA_CATCHUP_MS,
+                logStorage
         );
     }
 
@@ -129,7 +133,8 @@ public class PartitionSnapshotStorage {
             CatalogService catalogService,
             FailureProcessor failureProcessor,
             Executor incomingSnapshotsExecutor,
-            long waitForMetadataCatchupMs
+            long waitForMetadataCatchupMs,
+            LogStorageAccess logStorage
     ) {
         this.partitionKey = partitionKey;
         this.topologyService = topologyService;
@@ -139,6 +144,7 @@ public class PartitionSnapshotStorage {
         this.failureProcessor = failureProcessor;
         this.incomingSnapshotsExecutor = incomingSnapshotsExecutor;
         this.waitForMetadataCatchupMs = waitForMetadataCatchupMs;
+        this.logStorage = logStorage;
     }
 
     public PartitionKey partitionKey() {
@@ -356,4 +362,9 @@ public class PartitionSnapshotStorage {
                 .oldLearnersList(configuration.oldLearners())
                 .build();
     }
+
+    /** Returns the replication log storage. */
+    public LogStorageAccess logStorage() {
+        return logStorage;
+    }
 }
diff --git 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/incoming/IncomingSnapshotCopier.java
 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/incoming/IncomingSnapshotCopier.java
index 42f2e6326a0..f423452b75e 100644
--- 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/incoming/IncomingSnapshotCopier.java
+++ 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/incoming/IncomingSnapshotCopier.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.partition.replicator.raft.snapshot.incoming;
 import static java.util.concurrent.CompletableFuture.allOf;
 import static java.util.concurrent.CompletableFuture.anyOf;
 import static java.util.concurrent.CompletableFuture.failedFuture;
+import static java.util.concurrent.CompletableFuture.runAsync;
 import static java.util.stream.Collectors.toList;
 import static org.apache.ignite.internal.hlc.HybridTimestamp.hybridTimestamp;
 import static 
org.apache.ignite.internal.hlc.HybridTimestamp.nullableHybridTimestamp;
@@ -60,11 +61,16 @@ import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotTxDa
 import 
org.apache.ignite.internal.partition.replicator.network.replication.BinaryRowMessage;
 import 
org.apache.ignite.internal.partition.replicator.raft.PartitionSnapshotInfo;
 import 
org.apache.ignite.internal.partition.replicator.raft.PartitionSnapshotInfoSerializer;
+import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.LogStorageAccessImpl;
+import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionKey;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionMvStorageAccess;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionSnapshotStorage;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.SnapshotUri;
+import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.ZonePartitionKey;
 import org.apache.ignite.internal.raft.RaftGroupConfiguration;
 import org.apache.ignite.internal.raft.RaftGroupConfigurationSerializer;
+import org.apache.ignite.internal.replicator.TablePartitionId;
+import org.apache.ignite.internal.replicator.ZonePartitionId;
 import org.apache.ignite.internal.schema.BinaryRow;
 import org.apache.ignite.internal.storage.MvPartitionStorage;
 import org.apache.ignite.internal.storage.ReadResult;
@@ -732,4 +738,9 @@ public class IncomingSnapshotCopier extends SnapshotCopier {
             this.partitionsByTableId = partitionsByTableId;
         }
     }
+
+    // TODO: IGNITE-26849 Реализовать и по нормальному
+    private CompletableFuture<Void> 
destroyReplicationLogStorage(SnapshotContext snapshotContext) {
+        return nullCompletedFuture();
+    }
 }
diff --git 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManagerTest.java
 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManagerTest.java
index 9a6493d7e1c..489d1b56bc1 100644
--- 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManagerTest.java
+++ 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManagerTest.java
@@ -203,34 +203,6 @@ class PartitionReplicaLifecycleManagerTest extends 
BaseIgniteAbstractTest {
                 new PendingComparableValuesTracker<>(0L)
         ));
 
-        zoneResourcesManager = spy(new ZoneResourcesManager(
-                sharedTxStateStorage,
-                txManager,
-                outgoingSnapshotsManager,
-                topologyService,
-                catalogService,
-                failureManager,
-                executorService
-        ) {
-            @Override
-            protected TxStateStorage createTxStateStorage(int zoneId, int 
partitionCount) {
-                TxStateStorage txStateStorage = new 
TxStateRocksDbStorage(zoneId, partitionCount, sharedTxStateStorage) {
-                    @Override
-                    protected TxStateRocksDbPartitionStorage 
createPartitionStorage(int partitionId) {
-                        return txStatePartitionStorage;
-                    }
-                };
-
-                if (ThreadAssertions.enabled()) {
-                    txStateStorage = new 
ThreadAssertingTxStateStorage(txStateStorage);
-                }
-
-                txStateStorage.start();
-
-                return txStateStorage;
-            }
-        });
-
         when(raftManager.startRaftGroupNode(any(), any(), any(), any(), 
any(RaftGroupOptions.class), any()))
                 .thenReturn(topologyAwareRaftGroupService);
 
@@ -265,6 +237,35 @@ class PartitionReplicaLifecycleManagerTest extends 
BaseIgniteAbstractTest {
                 executorService
         ));
 
+        zoneResourcesManager = spy(new ZoneResourcesManager(
+                sharedTxStateStorage,
+                txManager,
+                outgoingSnapshotsManager,
+                topologyService,
+                catalogService,
+                failureManager,
+                executorService,
+                replicaManager
+        ) {
+            @Override
+            protected TxStateStorage createTxStateStorage(int zoneId, int 
partitionCount) {
+                TxStateStorage txStateStorage = new 
TxStateRocksDbStorage(zoneId, partitionCount, sharedTxStateStorage) {
+                    @Override
+                    protected TxStateRocksDbPartitionStorage 
createPartitionStorage(int partitionId) {
+                        return txStatePartitionStorage;
+                    }
+                };
+
+                if (ThreadAssertions.enabled()) {
+                    txStateStorage = new 
ThreadAssertingTxStateStorage(txStateStorage);
+                }
+
+                txStateStorage.start();
+
+                return txStateStorage;
+            }
+        });
+
         partitionReplicaLifecycleManager = new 
PartitionReplicaLifecycleManager(
                 catalogManager,
                 replicaManager,
diff --git 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/ZoneResourcesManagerTest.java
 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/ZoneResourcesManagerTest.java
index 991dda265ef..6d2b0c50cf7 100644
--- 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/ZoneResourcesManagerTest.java
+++ 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/ZoneResourcesManagerTest.java
@@ -41,6 +41,7 @@ import org.apache.ignite.internal.manager.ComponentContext;
 import org.apache.ignite.internal.network.TopologyService;
 import 
org.apache.ignite.internal.partition.replicator.ZoneResourcesManager.ZonePartitionResources;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.outgoing.OutgoingSnapshotsManager;
+import org.apache.ignite.internal.replicator.ReplicaManager;
 import org.apache.ignite.internal.replicator.ZonePartitionId;
 import org.apache.ignite.internal.testframework.ExecutorServiceExtension;
 import org.apache.ignite.internal.testframework.IgniteAbstractTest;
@@ -72,6 +73,7 @@ class ZoneResourcesManagerTest extends IgniteAbstractTest {
             @Mock OutgoingSnapshotsManager outgoingSnapshotsManager,
             @Mock TopologyService topologyService,
             @Mock CatalogService catalogService,
+            @Mock ReplicaManager replicaManager,
             @InjectExecutorService ScheduledExecutorService scheduler,
             @InjectExecutorService ExecutorService executor
     ) {
@@ -92,7 +94,8 @@ class ZoneResourcesManagerTest extends IgniteAbstractTest {
                 topologyService,
                 catalogService,
                 mock(FailureProcessor.class),
-                executor
+                executor,
+                replicaManager
         );
 
         storageIndexTracker = new PendingComparableValuesTracker<>(0L);
diff --git 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorageFactoryTest.java
 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorageFactoryTest.java
index 4704cf829d1..6373adc63af 100644
--- 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorageFactoryTest.java
+++ 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorageFactoryTest.java
@@ -49,7 +49,8 @@ class PartitionSnapshotStorageFactoryTest extends 
BaseIgniteAbstractTest {
             mock(PartitionTxStateAccess.class),
             mock(CatalogService.class),
             mock(FailureProcessor.class),
-            mock(Executor.class)
+            mock(Executor.class),
+            mock(LogStorageAccess.class)
     );
 
     @Mock
diff --git 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorageTest.java
 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorageTest.java
index 59219e1648d..014b76f1375 100644
--- 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorageTest.java
+++ 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorageTest.java
@@ -59,7 +59,8 @@ public class PartitionSnapshotStorageTest extends 
BaseIgniteAbstractTest {
             mock(PartitionTxStateAccess.class),
             mock(CatalogService.class),
             mock(FailureProcessor.class),
-            mock(Executor.class)
+            mock(Executor.class),
+            mock(LogStorageAccess.class)
     );
 
     @Test
diff --git 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/incoming/IncomingSnapshotCopierTest.java
 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/incoming/IncomingSnapshotCopierTest.java
index fdd3083b688..27b32b04f38 100644
--- 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/incoming/IncomingSnapshotCopierTest.java
+++ 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/incoming/IncomingSnapshotCopierTest.java
@@ -86,6 +86,7 @@ import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotTxDa
 import 
org.apache.ignite.internal.partition.replicator.network.replication.BinaryRowMessage;
 import 
org.apache.ignite.internal.partition.replicator.raft.PartitionSnapshotInfo;
 import 
org.apache.ignite.internal.partition.replicator.raft.PartitionSnapshotInfoSerializer;
+import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.LogStorageAccessImpl;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionSnapshotStorage;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionTxStateAccessImpl;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.SnapshotUri;
@@ -93,6 +94,7 @@ import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.ZonePartiti
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.outgoing.OutgoingSnapshotsManager;
 import org.apache.ignite.internal.raft.RaftGroupConfiguration;
 import org.apache.ignite.internal.raft.RaftGroupConfigurationConverter;
+import org.apache.ignite.internal.replicator.ReplicaManager;
 import org.apache.ignite.internal.replicator.TablePartitionId;
 import org.apache.ignite.internal.replicator.message.ReplicaMessagesFactory;
 import org.apache.ignite.internal.schema.BinaryRow;
@@ -199,6 +201,8 @@ public class IncomingSnapshotCopierTest extends 
BaseIgniteAbstractTest {
 
     private final TestLowWatermark lowWatermark = spy(new TestLowWatermark());
 
+    private final ReplicaManager replicaManager = mock(ReplicaManager.class);
+
     @BeforeEach
     void setUp(
             @Mock Catalog catalog,
@@ -396,7 +400,9 @@ public class IncomingSnapshotCopierTest extends 
BaseIgniteAbstractTest {
                 catalogService,
                 mock(FailureProcessor.class),
                 executorService,
-                0
+                0,
+                // TODO: IGNITE-26849 Добавить проверку что вызывается метод в 
каком-то тесте
+                new LogStorageAccessImpl(replicaManager)
         );
 
         storage.addMvPartition(TABLE_ID, spy(new PartitionMvStorageAccessImpl(
diff --git 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/outgoing/OutgoingSnapshotReaderTest.java
 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/outgoing/OutgoingSnapshotReaderTest.java
index 47af48813a7..b7283ad58e2 100644
--- 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/outgoing/OutgoingSnapshotReaderTest.java
+++ 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/outgoing/OutgoingSnapshotReaderTest.java
@@ -32,6 +32,7 @@ import org.apache.ignite.internal.catalog.Catalog;
 import org.apache.ignite.internal.catalog.CatalogService;
 import org.apache.ignite.internal.failure.FailureProcessor;
 import org.apache.ignite.internal.network.TopologyService;
+import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.LogStorageAccess;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionMvStorageAccess;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionSnapshotStorage;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionTxStateAccess;
@@ -84,7 +85,8 @@ public class OutgoingSnapshotReaderTest extends 
BaseIgniteAbstractTest {
                 txStateAccess,
                 catalogService,
                 mock(FailureProcessor.class),
-                mock(Executor.class)
+                mock(Executor.class),
+                mock(LogStorageAccess.class)
         );
 
         snapshotStorage.addMvPartition(TABLE_ID_1, partitionAccess1);
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
index 2df4c02721e..401b1e0ac0d 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
@@ -161,6 +161,7 @@ import 
org.apache.ignite.internal.partition.replicator.ReliableCatalogVersions;
 import org.apache.ignite.internal.partition.replicator.ReplicaTableProcessor;
 import 
org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessagesFactory;
 import 
org.apache.ignite.internal.partition.replicator.network.replication.ChangePeersAndLearnersAsyncReplicaRequest;
+import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.LogStorageAccessImpl;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionDataStorage;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionKey;
 import 
org.apache.ignite.internal.partition.replicator.raft.snapshot.PartitionSnapshotStorage;
@@ -2682,7 +2683,8 @@ public class TableManager implements 
IgniteTablesInternal, IgniteComponent {
                 txStateAccess,
                 catalogService,
                 failureProcessor,
-                incomingSnapshotsExecutor
+                incomingSnapshotsExecutor,
+                new LogStorageAccessImpl(replicaMgr)
         );
 
         snapshotStorage.addMvPartition(internalTable.tableId(), 
partitionAccess);

Reply via email to