diff --git a/server/src/internalClusterTest/java/org/opensearch/index/ShardIndexingPressureSettingsIT.java b/server/src/internalClusterTest/java/org/opensearch/index/ShardIndexingPressureSettingsIT.java index ea8749963aa63..e1316db46fef0 100644 --- a/server/src/internalClusterTest/java/org/opensearch/index/ShardIndexingPressureSettingsIT.java +++ b/server/src/internalClusterTest/java/org/opensearch/index/ShardIndexingPressureSettingsIT.java @@ -403,6 +403,8 @@ public void testShardIndexingPressureEnforcedEnabledDisabledSetting() throws Exc secondSuccessFuture = client(coordinatingOnlyNode).bulk(bulkRequest); Thread.sleep(25); + waitForTwoOutstandingRequests(coordinatingShardTracker); + // This request breaches the threshold and hence will be rejected expectThrows(OpenSearchRejectedExecutionException.class, () -> client(coordinatingOnlyNode).bulk(bulkRequest).actionGet()); @@ -636,6 +638,7 @@ public void testShardIndexingPressureLastSuccessfulSettingsUpdate() throws Excep IndexingPressureService.class, coordinatingOnlyNode ).getShardIndexingPressure().getShardIndexingPressureTracker(shardId); + waitForTwoOutstandingRequests(coordinatingShardTracker); expectThrows(OpenSearchRejectedExecutionException.class, () -> client(coordinatingOnlyNode).bulk(bulkRequest).actionGet()); assertEquals(1, coordinatingShardTracker.getCoordinatingOperationTracker().getRejectionTracker().getTotalRejections()); assertEquals( @@ -648,6 +651,7 @@ public void testShardIndexingPressureLastSuccessfulSettingsUpdate() throws Excep ShardIndexingPressureTracker primaryShardTracker = internalCluster().getInstance(IndexingPressureService.class, primaryName) .getShardIndexingPressure() .getShardIndexingPressureTracker(shardId); + waitForTwoOutstandingRequests(primaryShardTracker); expectThrows(OpenSearchRejectedExecutionException.class, () -> client(primaryName).bulk(bulkRequest).actionGet()); assertEquals(1, primaryShardTracker.getCoordinatingOperationTracker().getRejectionTracker().getTotalRejections()); assertEquals( @@ -920,6 +924,12 @@ private String getCoordinatingOnlyNode() { .getName(); } + private static void waitForTwoOutstandingRequests(ShardIndexingPressureTracker tracker) throws Exception { + assertBusy( + () -> { assertEquals(tracker.getCoordinatingOperationTracker().getPerformanceTracker().getTotalOutstandingRequests(), 2); } + ); + } + private void restartCluster(Settings settings) throws Exception { internalCluster().fullRestart(new InternalTestCluster.RestartCallback() { @Override