Skip to content

Commit

Permalink
Fix flakyness in RemoteStoreRefreshListenerTests (opensearch-project#…
Browse files Browse the repository at this point in the history
…8550)

---------

Signed-off-by: Ashish Singh <ssashish@amazon.com>
  • Loading branch information
ashking94 authored and vikasvb90 committed Jul 12, 2023
1 parent 9c657db commit e66f49b
Showing 1 changed file with 13 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
import org.opensearch.cluster.service.ClusterService;
import org.opensearch.common.collect.Tuple;
import org.opensearch.common.concurrent.GatedCloseable;
import org.opensearch.common.lease.Releasable;
import org.opensearch.common.settings.ClusterSettings;
import org.opensearch.common.settings.Settings;
import org.opensearch.common.lease.Releasable;
import org.opensearch.index.engine.InternalEngineFactory;
import org.opensearch.index.remote.RemoteRefreshSegmentPressureService;
import org.opensearch.index.remote.RemoteRefreshSegmentTracker;
Expand Down Expand Up @@ -249,10 +249,7 @@ public void testRefreshSuccessOnFirstAttempt() throws Exception {
assertBusy(() -> assertEquals(0, successLatch.getCount()));
RemoteRefreshSegmentPressureService pressureService = tuple.v2();
RemoteRefreshSegmentTracker segmentTracker = pressureService.getRemoteRefreshSegmentTracker(indexShard.shardId());
assertEquals(0, segmentTracker.getBytesLag());
assertEquals(0, segmentTracker.getRefreshSeqNoLag());
assertEquals(0, segmentTracker.getTimeMsLag());
assertEquals(0, segmentTracker.getTotalUploadsFailed());
assertNoLagAndTotalUploadsFailed(segmentTracker, 0);
}

public void testRefreshSuccessOnSecondAttempt() throws Exception {
Expand All @@ -273,10 +270,7 @@ public void testRefreshSuccessOnSecondAttempt() throws Exception {
assertBusy(() -> assertEquals(0, successLatch.getCount()));
RemoteRefreshSegmentPressureService pressureService = tuple.v2();
RemoteRefreshSegmentTracker segmentTracker = pressureService.getRemoteRefreshSegmentTracker(indexShard.shardId());
assertEquals(0, segmentTracker.getBytesLag());
assertEquals(0, segmentTracker.getRefreshSeqNoLag());
assertEquals(0, segmentTracker.getTimeMsLag());
assertEquals(1, segmentTracker.getTotalUploadsFailed());
assertNoLagAndTotalUploadsFailed(segmentTracker, 1);
}

/**
Expand Down Expand Up @@ -304,7 +298,7 @@ public void testRefreshSuccessAfterFailureInFirstAttemptAfterSnapshotAndMetadata
assertBusy(() -> assertEquals(0, reachedCheckpointPublishLatch.getCount()));
}

public void testRefreshSuccessOnThirdAttemptAttempt() throws Exception {
public void testRefreshSuccessOnThirdAttempt() throws Exception {
// This covers 3 cases - 1) isRetry=false, shouldRetry=true 2) isRetry=true, shouldRetry=false 3) isRetry=True, shouldRetry=true
// Succeed on 3rd attempt
int succeedOnAttempt = 3;
Expand All @@ -322,11 +316,16 @@ public void testRefreshSuccessOnThirdAttemptAttempt() throws Exception {
assertBusy(() -> assertEquals(0, successLatch.getCount()));
RemoteRefreshSegmentPressureService pressureService = tuple.v2();
RemoteRefreshSegmentTracker segmentTracker = pressureService.getRemoteRefreshSegmentTracker(indexShard.shardId());
assertEquals(0, segmentTracker.getBytesLag());
assertEquals(0, segmentTracker.getRefreshSeqNoLag());
assertEquals(0, segmentTracker.getTimeMsLag());
assertEquals(2, segmentTracker.getTotalUploadsFailed());
assertNoLagAndTotalUploadsFailed(segmentTracker, 2);
}

private void assertNoLagAndTotalUploadsFailed(RemoteRefreshSegmentTracker segmentTracker, long totalUploadsFailed) throws Exception {
assertBusy(() -> {
assertEquals(0, segmentTracker.getBytesLag());
assertEquals(0, segmentTracker.getRefreshSeqNoLag());
assertEquals(0, segmentTracker.getTimeMsLag());
assertEquals(totalUploadsFailed, segmentTracker.getTotalUploadsFailed());
});
}

public void testTrackerData() throws Exception {
Expand Down

0 comments on commit e66f49b

Please sign in to comment.