You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vp...@apache.org on 2023/10/11 12:17:51 UTC
[ignite-3] 01/01: IGNITE-19325 Unmute test MultiActorPlacementDriverTest#prolongAfterActiveActorChanger
This is an automated email from the ASF dual-hosted git repository.
vpyatkov pushed a commit to branch ignite-19325
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 98bb208770dd70a2d25885a49f9f42f331606d2e
Author: Vladislav Pyatkov <vl...@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();
}