From 5fe780148fa3536915d61475b087896a5b9ace82 Mon Sep 17 00:00:00 2001 From: Andrei Dan Date: Mon, 27 Jan 2020 09:19:39 +0000 Subject: [PATCH] Fix TimeSeriesLifecycleActionsIT.testShrinkAction (#51431) * Fix TimeSeriesLifecycleActionsIT.testShrinkAction Shrinking a 6 shard index to 3 shards can be quite time consuming and assertBusy probes the conditions at exponentially growing intervals. This separates the one assertion that was used for all the conditions into multiple assertBusy statements and increases the timeout for waiting for the shrink to complete. * Allow more time for shrink to complete This commit allows more time for the shrink operation to complete in testRetryFailedShrinkAction (separating the assertBusy calls too) and testMoveToRolloverStep. * Shrink to no more than 2 shards in tests --- .../ilm/TimeSeriesLifecycleActionsIT.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/x-pack/plugin/ilm/qa/multi-node/src/test/java/org/elasticsearch/xpack/ilm/TimeSeriesLifecycleActionsIT.java b/x-pack/plugin/ilm/qa/multi-node/src/test/java/org/elasticsearch/xpack/ilm/TimeSeriesLifecycleActionsIT.java index 77db090ed9187..9cd2051cb690d 100644 --- a/x-pack/plugin/ilm/qa/multi-node/src/test/java/org/elasticsearch/xpack/ilm/TimeSeriesLifecycleActionsIT.java +++ b/x-pack/plugin/ilm/qa/multi-node/src/test/java/org/elasticsearch/xpack/ilm/TimeSeriesLifecycleActionsIT.java @@ -199,14 +199,14 @@ public void testMoveToRolloverStep() throws Exception { // asserts that rollover was called assertBusy(() -> assertTrue(indexExists(secondIndex))); // asserts that shrink deleted the original index - assertBusy(() -> assertFalse(indexExists(originalIndex)), 20, TimeUnit.SECONDS); + assertBusy(() -> assertFalse(indexExists(originalIndex)), 30, TimeUnit.SECONDS); // asserts that the delete phase completed for the managed shrunken index assertBusy(() -> assertFalse(indexExists(shrunkenOriginalIndex))); } public void testRetryFailedShrinkAction() throws Exception { - int numShards = 6; - int divisor = randomFrom(2, 3, 6); + int numShards = 4; + int divisor = randomFrom(2, 4); int expectedFinalShards = numShards / divisor; String shrunkenIndex = ShrinkAction.SHRUNKEN_INDEX_PREFIX + index; createIndexWithSettings(index, Settings.builder().put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, numShards) @@ -227,12 +227,11 @@ public void testRetryFailedShrinkAction() throws Exception { assertOK(client().performRequest(retryRequest)); // assert corrected policy is picked up and index is shrunken + assertBusy(() -> assertTrue(indexExists(shrunkenIndex)), 30, TimeUnit.SECONDS); + assertBusy(() -> assertTrue(aliasExists(shrunkenIndex, index))); + assertBusy(() -> assertThat(getStepKeyForIndex(shrunkenIndex), equalTo(TerminalPolicyStep.KEY))); assertBusy(() -> { - logger.error(explainIndex(index)); - assertTrue(indexExists(shrunkenIndex)); - assertTrue(aliasExists(shrunkenIndex, index)); Map settings = getOnlyIndexSettings(shrunkenIndex); - assertThat(getStepKeyForIndex(shrunkenIndex), equalTo(TerminalPolicyStep.KEY)); assertThat(settings.get(IndexMetaData.SETTING_NUMBER_OF_SHARDS), equalTo(String.valueOf(expectedFinalShards))); assertThat(settings.get(IndexMetaData.INDEX_BLOCKS_WRITE_SETTING.getKey()), equalTo("true")); assertThat(settings.get(IndexMetaData.INDEX_ROUTING_REQUIRE_GROUP_SETTING.getKey() + "_id"), nullValue()); @@ -493,19 +492,19 @@ public void testForceMergeAction() throws Exception { } public void testShrinkAction() throws Exception { - int numShards = 6; - int divisor = randomFrom(2, 3, 6); + int numShards = 4; + int divisor = randomFrom(2, 4); int expectedFinalShards = numShards / divisor; String shrunkenIndex = ShrinkAction.SHRUNKEN_INDEX_PREFIX + index; createIndexWithSettings(index, Settings.builder().put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, numShards) .put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 0)); createNewSingletonPolicy("warm", new ShrinkAction(expectedFinalShards)); updatePolicy(index, policy); + assertBusy(() -> assertTrue(indexExists(shrunkenIndex)), 30, TimeUnit.SECONDS); + assertBusy(() -> assertTrue(aliasExists(shrunkenIndex, index))); + assertBusy(() -> assertThat(getStepKeyForIndex(shrunkenIndex), equalTo(TerminalPolicyStep.KEY))); assertBusy(() -> { - assertTrue(indexExists(shrunkenIndex)); - assertTrue(aliasExists(shrunkenIndex, index)); Map settings = getOnlyIndexSettings(shrunkenIndex); - assertThat(getStepKeyForIndex(shrunkenIndex), equalTo(TerminalPolicyStep.KEY)); assertThat(settings.get(IndexMetaData.SETTING_NUMBER_OF_SHARDS), equalTo(String.valueOf(expectedFinalShards))); assertThat(settings.get(IndexMetaData.INDEX_BLOCKS_WRITE_SETTING.getKey()), equalTo("true")); assertThat(settings.get(IndexMetaData.INDEX_ROUTING_REQUIRE_GROUP_SETTING.getKey() + "_id"), nullValue());