Browse Source

Fix testGlobalCheckpointSync

The test needed adaption after #43205, as the ReplicationTracker now distinguishes between the
knowledge of the persisted global checkpoint and the computed global checkpoint on the primary

Follow-up to #43205
Yannick Welsch 6 years ago
parent
commit
5eb807b2eb

+ 4 - 1
server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java

@@ -1116,11 +1116,14 @@ public class IndexShardTests extends IndexShardTestCase {
         final String replicaAllocationId = replicaShard.routingEntry().allocationId().getId();
         final String replicaAllocationId = replicaShard.routingEntry().allocationId().getId();
         primaryShard.updateLocalCheckpointForShard(replicaAllocationId, replicaLocalCheckpoint);
         primaryShard.updateLocalCheckpointForShard(replicaAllocationId, replicaLocalCheckpoint);
 
 
-        // initialize the local knowledge on the primary of the global checkpoint on the replica shard
+        // initialize the local knowledge on the primary of the persisted global checkpoint on the replica shard
         final int replicaGlobalCheckpoint = randomIntBetween(Math.toIntExact(SequenceNumbers.NO_OPS_PERFORMED),
         final int replicaGlobalCheckpoint = randomIntBetween(Math.toIntExact(SequenceNumbers.NO_OPS_PERFORMED),
             Math.toIntExact(primaryShard.getLastKnownGlobalCheckpoint()));
             Math.toIntExact(primaryShard.getLastKnownGlobalCheckpoint()));
         primaryShard.updateGlobalCheckpointForShard(replicaAllocationId, replicaGlobalCheckpoint);
         primaryShard.updateGlobalCheckpointForShard(replicaAllocationId, replicaGlobalCheckpoint);
 
 
+        // initialize the local knowledge on the primary of the persisted global checkpoint on the primary
+        primaryShard.updateGlobalCheckpointForShard(shardRouting.allocationId().getId(), primaryShard.getLastKnownGlobalCheckpoint());
+
         // simulate a background maybe sync; it should only run if the knowledge on the replica of the global checkpoint lags the primary
         // simulate a background maybe sync; it should only run if the knowledge on the replica of the global checkpoint lags the primary
         primaryShard.maybeSyncGlobalCheckpoint("test");
         primaryShard.maybeSyncGlobalCheckpoint("test");
         assertThat(
         assertThat(