Skip to content

Commit 833474e

Browse files
committed
Simplify CcrRetentionLeaseIT#testForgetFollower
This test was more complicated than necessary, where we were capturing requests to prevent removal of retention leases, so that our forget follower request could remove the retention leases instead. Instead, a pause is enough to ensure that the retention leases are not re-added after we remove them by the forget follower request. This commit simplifies this test, and should remove some spurious failures. Closes #39850
1 parent 4f5ca36 commit 833474e

File tree

1 file changed

+20
-51
lines changed

1 file changed

+20
-51
lines changed

x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/CcrRetentionLeaseIT.java

+20-51
Original file line numberDiff line numberDiff line change
@@ -937,60 +937,29 @@ public void testForgetFollower() throws Exception {
937937
pauseFollow(followerIndex);
938938
followerClient().admin().indices().close(new CloseIndexRequest(followerIndex)).actionGet();
939939

940-
final ClusterStateResponse followerClusterState = followerClient().admin().cluster().prepareState().clear().setNodes(true).get();
941-
try {
942-
for (final ObjectCursor<DiscoveryNode> senderNode : followerClusterState.getState().nodes().getNodes().values()) {
943-
final MockTransportService senderTransportService =
944-
(MockTransportService) getFollowerCluster().getInstance(TransportService.class, senderNode.value.getName());
945-
senderTransportService.addSendBehavior(
946-
(connection, requestId, action, request, options) -> {
947-
if (RetentionLeaseActions.Remove.ACTION_NAME.equals(action)
948-
|| TransportActionProxy.getProxyAction(RetentionLeaseActions.Remove.ACTION_NAME).equals(action)) {
949-
final RetentionLeaseActions.RemoveRequest removeRequest = (RetentionLeaseActions.RemoveRequest) request;
950-
if (randomBoolean()) {
951-
throw new ConnectTransportException(connection.getNode(), "connection failed");
952-
} else {
953-
throw new IndexShardClosedException(removeRequest.getShardId());
954-
}
955-
}
956-
connection.sendRequest(requestId, action, request, options);
957-
});
958-
}
959-
960-
expectThrows(
961-
ElasticsearchException.class,
962-
() -> followerClient().execute(UnfollowAction.INSTANCE, new UnfollowAction.Request(followerIndex)).actionGet());
963-
964-
final ClusterStateResponse followerIndexClusterState =
965-
followerClient().admin().cluster().prepareState().clear().setMetaData(true).setIndices(followerIndex).get();
966-
final String followerUUID = followerIndexClusterState.getState().metaData().index(followerIndex).getIndexUUID();
940+
final ClusterStateResponse followerIndexClusterState =
941+
followerClient().admin().cluster().prepareState().clear().setMetaData(true).setIndices(followerIndex).get();
942+
final String followerUUID = followerIndexClusterState.getState().metaData().index(followerIndex).getIndexUUID();
967943

968-
final BroadcastResponse forgetFollowerResponse = leaderClient().execute(
969-
ForgetFollowerAction.INSTANCE,
970-
new ForgetFollowerAction.Request(
971-
getFollowerCluster().getClusterName(),
972-
followerIndex,
973-
followerUUID,
974-
"leader_cluster",
975-
leaderIndex)).actionGet();
944+
final BroadcastResponse forgetFollowerResponse = leaderClient().execute(
945+
ForgetFollowerAction.INSTANCE,
946+
new ForgetFollowerAction.Request(
947+
getFollowerCluster().getClusterName(),
948+
followerIndex,
949+
followerUUID,
950+
"leader_cluster",
951+
leaderIndex)).actionGet();
976952

977-
assertThat(forgetFollowerResponse.getTotalShards(), equalTo(numberOfShards));
978-
assertThat(forgetFollowerResponse.getSuccessfulShards(), equalTo(numberOfShards));
979-
assertThat(forgetFollowerResponse.getFailedShards(), equalTo(0));
980-
assertThat(forgetFollowerResponse.getShardFailures(), emptyArray());
953+
assertThat(forgetFollowerResponse.getTotalShards(), equalTo(numberOfShards));
954+
assertThat(forgetFollowerResponse.getSuccessfulShards(), equalTo(numberOfShards));
955+
assertThat(forgetFollowerResponse.getFailedShards(), equalTo(0));
956+
assertThat(forgetFollowerResponse.getShardFailures(), emptyArray());
981957

982-
final IndicesStatsResponse afterForgetFollowerStats =
983-
leaderClient().admin().indices().stats(new IndicesStatsRequest().clear().indices(leaderIndex)).actionGet();
984-
final List<ShardStats> afterForgetFollowerShardsStats = getShardsStats(afterForgetFollowerStats);
985-
for (final ShardStats shardStats : afterForgetFollowerShardsStats) {
986-
assertThat(shardStats.getRetentionLeaseStats().retentionLeases().leases(), empty());
987-
}
988-
} finally {
989-
for (final ObjectCursor<DiscoveryNode> senderNode : followerClusterState.getState().nodes().getDataNodes().values()) {
990-
final MockTransportService senderTransportService =
991-
(MockTransportService) getFollowerCluster().getInstance(TransportService.class, senderNode.value.getName());
992-
senderTransportService.clearAllRules();
993-
}
958+
final IndicesStatsResponse afterForgetFollowerStats =
959+
leaderClient().admin().indices().stats(new IndicesStatsRequest().clear().indices(leaderIndex)).actionGet();
960+
final List<ShardStats> afterForgetFollowerShardsStats = getShardsStats(afterForgetFollowerStats);
961+
for (final ShardStats shardStats : afterForgetFollowerShardsStats) {
962+
assertThat(shardStats.getRetentionLeaseStats().retentionLeases().leases(), empty());
994963
}
995964
}
996965

0 commit comments

Comments
 (0)