vldpyatkov commented on code in PR #2255:
URL: https://github.com/apache/ignite-3/pull/2255#discussion_r1244864880


##########
modules/replicator/src/integrationTest/java/org/apache/ignite/internal/replicator/ItPlacementDriverReplicaSideTest.java:
##########
@@ -347,6 +356,83 @@ public void 
testNotificationToPlacementDriverAboutMajorityLoss() throws Exceptio
         stopReplicationGroup(GROUP_ID, grpNodes);
     }
 
+    @Test
+    @Disabled("IGNITE-19120 Raft client should get leader metadata along while 
getting leader itself")
+    public void testLeaseGrantWhenMajorityLoss() throws Exception {
+        Set<String> grpNodes = chooseRandomNodes(3);
+
+        log.info("Replication group is based on {}", grpNodes);
+        log.info("Placement driver driver is based on {}", 
placementDriverNodeNames);
+
+        var raftClientFut = createReplicationGroup(GROUP_ID, grpNodes);
+
+        var raftClient = raftClientFut.get();
+
+        raftClient.refreshLeader().get();
+
+        var leaderNodeName = raftClient.leader().consistentId();
+
+        var clusterService = 
clusterServices.get(randomPlacementDriverNode(Set.of()));
+
+        var leaseGrantMsgFut = clusterService.messagingService().invoke(
+                
clusterService.topologyService().getByConsistentId(leaderNodeName),
+                PLACEMENT_DRIVER_MESSAGES_FACTORY.leaseGrantedMessage()
+                        .groupId(GROUP_ID)
+                        .leaseStartTimeLong(clock.nowLong())
+                        .leaseExpirationTimeLong(new 
HybridTimestamp(clock.now().getPhysical() + 10_000, 0).longValue())
+                        .build(),
+                2_000
+        );
+
+        assertThat(leaseGrantMsgFut, willCompleteSuccessfully());
+
+        LeaseGrantedMessageResponse leaseGrantResp = 
(LeaseGrantedMessageResponse) leaseGrantMsgFut.get();
+
+        assertTrue(leaseGrantResp.accepted());
+        assertNull(leaseGrantResp.redirectProposal());
+
+        var grpNodesToStop = grpNodes.stream().filter(n -> 
!n.equals(leaderNodeName)).collect(toSet());
+
+        log.info(
+                "All nodes of the replication group will be unavailable except 
leader [leader={}, others={}]",
+                leaderNodeName,
+                grpNodesToStop
+        );
+
+        for (String nodeToStop : grpNodesToStop) {
+            var srvc = clusterServices.get(nodeToStop);
+
+            srvc.beforeNodeStop();
+            srvc.stop();
+        }
+
+        clusterService = 
clusterServices.get(randomPlacementDriverNode(grpNodesToStop));
+
+        log.info(
+                "Placement driver node tries to prolong a lease [pdNode={}, 
grpLeader={}]",
+                clusterService.topologyService().localMember(),
+                leaderNodeName
+        );
+
+        var prolongLeaseFut = clusterService.messagingService().invoke(
+                
clusterService.topologyService().getByConsistentId(leaderNodeName),
+                PLACEMENT_DRIVER_MESSAGES_FACTORY.leaseGrantedMessage()
+                        .groupId(GROUP_ID)
+                        .leaseStartTimeLong(clock.nowLong())
+                        .leaseExpirationTimeLong(new 
HybridTimestamp(clock.now().getPhysical() + 10_000, 0).longValue())
+                        .build(),
+                1_000
+        );
+
+        Thread.sleep(2_000);

Review Comment:
   It is a disable test. When the corresponding ticket be implemented, it will 
be able to rewrite.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@ignite.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to