This is an automated email from the ASF dual-hosted git repository. vpyatkov pushed a commit to branch ignite-19325_1 in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 4256e63c5bbc408046edc8de606ddc14eeaee54f Author: Vladislav Pyatkov <vldpyat...@gmail.com> AuthorDate: Wed Oct 11 15:11:51 2023 +0300 IGNITE-19325 Unmute test MultiActorPlacementDriverTest#prolongAfterActiveActorChanger --- .../MultiActorPlacementDriverTest.java | 34 +++++++++++++++------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/MultiActorPlacementDriverTest.java b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/MultiActorPlacementDriverTest.java index cd37a2e0b9..d314e2e8bd 100644 --- a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/MultiActorPlacementDriverTest.java +++ b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/MultiActorPlacementDriverTest.java @@ -46,6 +46,7 @@ import org.apache.ignite.internal.configuration.testframework.InjectConfiguratio import org.apache.ignite.internal.hlc.HybridClock; import org.apache.ignite.internal.hlc.HybridClockImpl; import org.apache.ignite.internal.lang.IgniteTriFunction; +import org.apache.ignite.internal.metastorage.Entry; import org.apache.ignite.internal.metastorage.configuration.MetaStorageConfiguration; import org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl; import org.apache.ignite.internal.metastorage.server.SimpleInMemoryKeyValueStorage; @@ -58,8 +59,10 @@ import org.apache.ignite.internal.placementdriver.message.PlacementDriverMessage import org.apache.ignite.internal.placementdriver.message.PlacementDriverMessagesFactory; import org.apache.ignite.internal.placementdriver.message.PlacementDriverReplicaMessage; import org.apache.ignite.internal.raft.Loza; +import org.apache.ignite.internal.raft.Peer; import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupServiceFactory; import org.apache.ignite.internal.raft.configuration.RaftConfiguration; +import org.apache.ignite.internal.raft.service.RaftGroupService; import org.apache.ignite.internal.replicator.TablePartitionId; import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.internal.vault.VaultManager; @@ -72,7 +75,6 @@ import org.apache.ignite.raft.jraft.rpc.impl.RaftGroupEventsClientListener; import org.apache.ignite.utils.ClusterServiceTestUtils; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; import org.junit.jupiter.api.extension.ExtendWith; @@ -314,7 +316,6 @@ public class MultiActorPlacementDriverTest extends BasePlacementDriverTest { } @Test - @Disabled("https://issues.apache.org/jira/browse/IGNITE-19325") public void prolongAfterActiveActorChanger() throws Exception { var acceptedNodeRef = new AtomicReference<String>(); @@ -330,19 +331,21 @@ public class MultiActorPlacementDriverTest extends BasePlacementDriverTest { Lease lease = checkLeaseCreated(grpPart0, true); - var msRaftClient = metaStorageManager.getService().raftGroupService(); + RaftGroupService msRaftClient = metaStorageManager.getService().raftGroupService(); msRaftClient.refreshLeader().join(); - var previousLeader = msRaftClient.leader(); + Peer previousLeader = msRaftClient.leader(); - var newLeader = msRaftClient.peers().stream().filter(peer -> !peer.equals(previousLeader)).findAny().get(); + Peer newLeader = msRaftClient.peers().stream().filter(peer -> !peer.equals(previousLeader)).findAny().get(); - log.info("Leader transfer [from={}, to={}]", previousLeader, newLeader); + log.info("The placement driver group active actor is transferring [from={}, to={}]", previousLeader, newLeader); msRaftClient.transferLeadership(newLeader).get(); - Lease leaseRenew = waitForProlong(grpPart0, lease); + waitForProlong(grpPart0, lease); + + assertEquals(newLeader, msRaftClient.leader()); } @@ -477,14 +480,24 @@ public class MultiActorPlacementDriverTest extends BasePlacementDriverTest { var leaseRenewRef = new AtomicReference<Lease>(); assertTrue(waitForCondition(() -> { - var fut = metaStorageManager.get(PLACEMENTDRIVER_LEASES_KEY); + if (lease == null) { + return false; + } - Lease leaseRenew = leaseFromBytes(fut.join().value(), grpPart); + CompletableFuture<Entry> msFur = metaStorageManager.get(PLACEMENTDRIVER_LEASES_KEY).exceptionally(ex -> { + log.info("Meta storage is unavailable", ex); - if (lease == null) { + return null; + }); + + assertThat(msFur, willCompleteSuccessfully()); + + if (msFur.join() == null) { return false; } + Lease leaseRenew = leaseFromBytes(msFur.join().value(), grpPart); + if (lease.getExpirationTime().compareTo(leaseRenew.getExpirationTime()) < 0) { leaseRenewRef.set(leaseRenew); @@ -495,6 +508,7 @@ public class MultiActorPlacementDriverTest extends BasePlacementDriverTest { }, 10_000)); assertEquals(lease.getLeaseholder(), leaseRenewRef.get().getLeaseholder()); + assertEquals(lease.getStartTime(), leaseRenewRef.get().getStartTime()); return leaseRenewRef.get(); }