From d872db278a93b4e7a7d5021114eed39d99941039 Mon Sep 17 00:00:00 2001 From: Andrei Dan Date: Mon, 27 Jan 2020 10:40:29 +0000 Subject: [PATCH] Fix TimeSeriesLifecycleActionsIT.testShrinkAction (#51431) (#51467) * 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 (cherry picked from commit 5fe780148fa3536915d61475b087896a5b9ace82) Signed-off-by: Andrei Dan --- .../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 3eb7bd702be..ded6f7f5284 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 class TimeSeriesLifecycleActionsIT extends ESRestTestCase { // 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 class TimeSeriesLifecycleActionsIT extends ESRestTestCase { 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()); @@ -496,19 +495,19 @@ public class TimeSeriesLifecycleActionsIT extends ESRestTestCase { } 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());