From ad77fd9eed3a43e8ad1e379e9ab7afcc2d0b196b Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Mon, 30 Sep 2019 11:46:07 +0200 Subject: [PATCH 1/6] Omit writing index metadata for closed indices on data-only node --- .../IncrementalClusterStateWriter.java | 23 ++------- .../IncrementalClusterStateWriterTests.java | 47 ++++--------------- .../indices/state/CloseIndexIT.java | 25 ++++++++++ 3 files changed, 37 insertions(+), 58 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java b/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java index d015bcc5b6c22..ace698e2847a6 100644 --- a/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java +++ b/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java @@ -139,7 +139,7 @@ private void writeManifest(AtomicClusterStateWriter writer, Manifest manifest) t private Map writeIndicesMetadata(AtomicClusterStateWriter writer, ClusterState newState, ClusterState previousState) throws WriteStateException { Map previouslyWrittenIndices = previousManifest.getIndexGenerations(); - Set relevantIndices = getRelevantIndices(newState, previousState, previouslyWrittenIndices.keySet()); + Set relevantIndices = getRelevantIndices(newState); Map newIndices = new HashMap<>(); @@ -207,8 +207,7 @@ static List resolveIndexMetaDataActions(Map pr return actions; } - private static Set getRelevantIndicesOnDataOnlyNode(ClusterState state, ClusterState previousState, Set - previouslyWrittenIndices) { + private static Set getRelevantIndicesOnDataOnlyNode(ClusterState state) { RoutingNode newRoutingNode = state.getRoutingNodes().node(state.nodes().getLocalNodeId()); if (newRoutingNode == null) { throw new IllegalStateException("cluster state does not contain this node - cannot write index meta state"); @@ -217,20 +216,6 @@ private static Set getRelevantIndicesOnDataOnlyNode(ClusterState state, C for (ShardRouting routing : newRoutingNode) { indices.add(routing.index()); } - // we have to check the meta data also: closed indices will not appear in the routing table, but we must still write the state if - // we have it written on disk previously - for (IndexMetaData indexMetaData : state.metaData()) { - boolean isOrWasClosed = indexMetaData.getState().equals(IndexMetaData.State.CLOSE); - // if the index is open we might still have to write the state if it just transitioned from closed to open - // so we have to check for that as well. - IndexMetaData previousMetaData = previousState.metaData().index(indexMetaData.getIndex()); - if (previousMetaData != null) { - isOrWasClosed = isOrWasClosed || previousMetaData.getState().equals(IndexMetaData.State.CLOSE); - } - if (previouslyWrittenIndices.contains(indexMetaData.getIndex()) && isOrWasClosed) { - indices.add(indexMetaData.getIndex()); - } - } return indices; } @@ -244,10 +229,10 @@ private static Set getRelevantIndicesForMasterEligibleNode(ClusterState s } // exposed for tests - static Set getRelevantIndices(ClusterState state, ClusterState previousState, Set previouslyWrittenIndices) { + static Set getRelevantIndices(ClusterState state) { Set relevantIndices; if (isDataOnlyNode(state)) { - relevantIndices = getRelevantIndicesOnDataOnlyNode(state, previousState, previouslyWrittenIndices); + relevantIndices = getRelevantIndicesOnDataOnlyNode(state); } else if (state.nodes().getLocalNode().isMasterNode()) { relevantIndices = getRelevantIndicesForMasterEligibleNode(state); } else { diff --git a/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java b/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java index d5a03dee70e1c..a0ec2a278fe0a 100644 --- a/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java +++ b/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java @@ -73,17 +73,6 @@ public class IncrementalClusterStateWriterTests extends ESAllocationTestCase { - private ClusterState noIndexClusterState(boolean masterEligible) { - MetaData metaData = MetaData.builder().build(); - RoutingTable routingTable = RoutingTable.builder().build(); - - return ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)) - .metaData(metaData) - .routingTable(routingTable) - .nodes(generateDiscoveryNodes(masterEligible)) - .build(); - } - private ClusterState clusterStateWithUnassignedIndex(IndexMetaData indexMetaData, boolean masterEligible) { MetaData metaData = MetaData.builder() .put(indexMetaData, false) @@ -154,14 +143,6 @@ private DiscoveryNodes.Builder generateDiscoveryNodes(boolean masterEligible) { .add(newNode("master_node", MASTER_DATA_ROLES)).localNodeId("node1").masterNodeId(masterEligible ? "node1" : "master_node"); } - private Set randomPrevWrittenIndices(IndexMetaData indexMetaData) { - if (randomBoolean()) { - return Collections.singleton(indexMetaData.getIndex()); - } else { - return Collections.emptySet(); - } - } - private IndexMetaData createIndexMetaData(String name) { return IndexMetaData.builder(name). settings(settings(Version.CURRENT)). @@ -173,18 +154,14 @@ private IndexMetaData createIndexMetaData(String name) { public void testGetRelevantIndicesWithUnassignedShardsOnMasterEligibleNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithUnassignedIndex(indexMetaData, true), - noIndexClusterState(true), - randomPrevWrittenIndices(indexMetaData)); + clusterStateWithUnassignedIndex(indexMetaData, true)); assertThat(indices.size(), equalTo(1)); } public void testGetRelevantIndicesWithUnassignedShardsOnDataOnlyNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithUnassignedIndex(indexMetaData, false), - noIndexClusterState(false), - randomPrevWrittenIndices(indexMetaData)); + clusterStateWithUnassignedIndex(indexMetaData, false)); assertThat(indices.size(), equalTo(0)); } @@ -192,37 +169,29 @@ public void testGetRelevantIndicesWithAssignedShards() { IndexMetaData indexMetaData = createIndexMetaData("test"); boolean masterEligible = randomBoolean(); Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithAssignedIndex(indexMetaData, masterEligible), - clusterStateWithUnassignedIndex(indexMetaData, masterEligible), - randomPrevWrittenIndices(indexMetaData)); + clusterStateWithAssignedIndex(indexMetaData, masterEligible)); assertThat(indices.size(), equalTo(1)); } public void testGetRelevantIndicesForClosedPrevWrittenIndexOnDataOnlyNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithClosedIndex(indexMetaData, false), - clusterStateWithAssignedIndex(indexMetaData, false), - Collections.singleton(indexMetaData.getIndex())); - assertThat(indices.size(), equalTo(1)); + clusterStateWithClosedIndex(indexMetaData, false)); + assertThat(indices.size(), equalTo(0)); } public void testGetRelevantIndicesForClosedPrevNotWrittenIndexOnDataOnlyNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithJustOpenedIndex(indexMetaData, false), - clusterStateWithClosedIndex(indexMetaData, false), - Collections.emptySet()); + clusterStateWithJustOpenedIndex(indexMetaData, false)); assertThat(indices.size(), equalTo(0)); } public void testGetRelevantIndicesForWasClosedPrevWrittenIndexOnDataOnlyNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithJustOpenedIndex(indexMetaData, false), - clusterStateWithClosedIndex(indexMetaData, false), - Collections.singleton(indexMetaData.getIndex())); - assertThat(indices.size(), equalTo(1)); + clusterStateWithJustOpenedIndex(indexMetaData, false)); + assertThat(indices.size(), equalTo(0)); } public void testResolveStatesToBeWritten() throws WriteStateException { diff --git a/server/src/test/java/org/elasticsearch/indices/state/CloseIndexIT.java b/server/src/test/java/org/elasticsearch/indices/state/CloseIndexIT.java index 2701bfc104c71..b453c887aaafe 100644 --- a/server/src/test/java/org/elasticsearch/indices/state/CloseIndexIT.java +++ b/server/src/test/java/org/elasticsearch/indices/state/CloseIndexIT.java @@ -432,6 +432,31 @@ public Settings onNodeStopped(String nodeName) throws Exception { } } + /** + * Test for https://github.com/elastic/elasticsearch/issues/47276 which checks that the persisted metadata on a data node does not + * become inconsistent when using replicated closed indices. + */ + public void testRelocatedClosedIndexIssue() throws Exception { + final String indexName = "closed-index"; + final List dataNodes = internalCluster().startDataOnlyNodes(2); + // allocate shard to first data node + createIndex(indexName, Settings.builder() + .put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, 1) + .put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 0) + .put("index.routing.allocation.include._name", String.join(",", dataNodes.get(0))) + .build()); + indexRandom(randomBoolean(), randomBoolean(), randomBoolean(), IntStream.range(0, randomIntBetween(0, 50)) + .mapToObj(n -> client().prepareIndex(indexName, "_doc").setSource("num", n)).collect(toList())); + assertAcked(client().admin().indices().prepareClose(indexName)); + // move single shard to second node + client().admin().indices().prepareUpdateSettings(indexName).setSettings(Settings.builder() + .put("index.routing.allocation.include._name", String.join(",", dataNodes.get(1)))).get(); + ensureGreen(indexName); + internalCluster().fullRestart(); + assertIndexIsClosed(indexName); + ensureGreen(indexName); + } + public void testResyncPropagatePrimaryTerm() throws Exception { internalCluster().ensureAtLeastNumDataNodes(3); final String indexName = "closed_indices_promotion"; From e648954c9c5f0dad0c0c2eedd73a6295ad59996f Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Mon, 30 Sep 2019 11:48:07 +0200 Subject: [PATCH 2/6] simplify test --- .../java/org/elasticsearch/indices/state/CloseIndexIT.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/src/test/java/org/elasticsearch/indices/state/CloseIndexIT.java b/server/src/test/java/org/elasticsearch/indices/state/CloseIndexIT.java index b453c887aaafe..7f05c003a3931 100644 --- a/server/src/test/java/org/elasticsearch/indices/state/CloseIndexIT.java +++ b/server/src/test/java/org/elasticsearch/indices/state/CloseIndexIT.java @@ -443,14 +443,14 @@ public void testRelocatedClosedIndexIssue() throws Exception { createIndex(indexName, Settings.builder() .put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, 1) .put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 0) - .put("index.routing.allocation.include._name", String.join(",", dataNodes.get(0))) + .put("index.routing.allocation.include._name", dataNodes.get(0)) .build()); indexRandom(randomBoolean(), randomBoolean(), randomBoolean(), IntStream.range(0, randomIntBetween(0, 50)) .mapToObj(n -> client().prepareIndex(indexName, "_doc").setSource("num", n)).collect(toList())); assertAcked(client().admin().indices().prepareClose(indexName)); // move single shard to second node client().admin().indices().prepareUpdateSettings(indexName).setSettings(Settings.builder() - .put("index.routing.allocation.include._name", String.join(",", dataNodes.get(1)))).get(); + .put("index.routing.allocation.include._name", dataNodes.get(1))).get(); ensureGreen(indexName); internalCluster().fullRestart(); assertIndexIsClosed(indexName); From 12a7e098f6a2f513f2222d19e0321d0a81e953ba Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Mon, 30 Sep 2019 12:20:26 +0200 Subject: [PATCH 3/6] Remove isDataOnlyNode --- .../gateway/IncrementalClusterStateWriter.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java b/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java index ace698e2847a6..35ba420e5353d 100644 --- a/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java +++ b/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java @@ -231,20 +231,16 @@ private static Set getRelevantIndicesForMasterEligibleNode(ClusterState s // exposed for tests static Set getRelevantIndices(ClusterState state) { Set relevantIndices; - if (isDataOnlyNode(state)) { - relevantIndices = getRelevantIndicesOnDataOnlyNode(state); - } else if (state.nodes().getLocalNode().isMasterNode()) { + if (state.nodes().getLocalNode().isMasterNode()) { relevantIndices = getRelevantIndicesForMasterEligibleNode(state); + } else if (state.nodes().getLocalNode().isDataNode()) { + relevantIndices = getRelevantIndicesOnDataOnlyNode(state); } else { relevantIndices = Collections.emptySet(); } return relevantIndices; } - private static boolean isDataOnlyNode(ClusterState state) { - return state.nodes().getLocalNode().isMasterNode() == false && state.nodes().getLocalNode().isDataNode(); - } - /** * Action to perform with index metadata. */ From d1968106f3e3d5aba38be846a42099ec18f06252 Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Mon, 30 Sep 2019 12:21:46 +0200 Subject: [PATCH 4/6] less newlines --- .../IncrementalClusterStateWriterTests.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java b/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java index a0ec2a278fe0a..24a93df3b766c 100644 --- a/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java +++ b/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java @@ -153,44 +153,38 @@ private IndexMetaData createIndexMetaData(String name) { public void testGetRelevantIndicesWithUnassignedShardsOnMasterEligibleNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); - Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithUnassignedIndex(indexMetaData, true)); + Set indices = IncrementalClusterStateWriter.getRelevantIndices(clusterStateWithUnassignedIndex(indexMetaData, true)); assertThat(indices.size(), equalTo(1)); } public void testGetRelevantIndicesWithUnassignedShardsOnDataOnlyNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); - Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithUnassignedIndex(indexMetaData, false)); + Set indices = IncrementalClusterStateWriter.getRelevantIndices(clusterStateWithUnassignedIndex(indexMetaData, false)); assertThat(indices.size(), equalTo(0)); } public void testGetRelevantIndicesWithAssignedShards() { IndexMetaData indexMetaData = createIndexMetaData("test"); boolean masterEligible = randomBoolean(); - Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithAssignedIndex(indexMetaData, masterEligible)); + Set indices = IncrementalClusterStateWriter.getRelevantIndices(clusterStateWithAssignedIndex(indexMetaData, masterEligible)); assertThat(indices.size(), equalTo(1)); } public void testGetRelevantIndicesForClosedPrevWrittenIndexOnDataOnlyNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); - Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithClosedIndex(indexMetaData, false)); + Set indices = IncrementalClusterStateWriter.getRelevantIndices(clusterStateWithClosedIndex(indexMetaData, false)); assertThat(indices.size(), equalTo(0)); } public void testGetRelevantIndicesForClosedPrevNotWrittenIndexOnDataOnlyNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); - Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithJustOpenedIndex(indexMetaData, false)); + Set indices = IncrementalClusterStateWriter.getRelevantIndices(clusterStateWithJustOpenedIndex(indexMetaData, false)); assertThat(indices.size(), equalTo(0)); } public void testGetRelevantIndicesForWasClosedPrevWrittenIndexOnDataOnlyNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); - Set indices = IncrementalClusterStateWriter.getRelevantIndices( - clusterStateWithJustOpenedIndex(indexMetaData, false)); + Set indices = IncrementalClusterStateWriter.getRelevantIndices(clusterStateWithJustOpenedIndex(indexMetaData, false)); assertThat(indices.size(), equalTo(0)); } From 800d6574cbafea2d935530d3f4dd8b21f218314d Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Mon, 30 Sep 2019 12:32:55 +0200 Subject: [PATCH 5/6] improve tests --- .../IncrementalClusterStateWriterTests.java | 48 ++++++++++++++----- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java b/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java index 24a93df3b766c..3060090699f45 100644 --- a/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java +++ b/server/src/test/java/org/elasticsearch/gateway/IncrementalClusterStateWriterTests.java @@ -30,6 +30,7 @@ import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.cluster.metadata.Manifest; import org.elasticsearch.cluster.metadata.MetaData; +import org.elasticsearch.cluster.metadata.MetaDataIndexStateService; import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.cluster.node.DiscoveryNodeRole; import org.elasticsearch.cluster.node.DiscoveryNodes; @@ -108,7 +109,7 @@ private ClusterState clusterStateWithAssignedIndex(IndexMetaData indexMetaData, .metaData(metaDataNewClusterState).version(oldClusterState.getVersion() + 1).build(); } - private ClusterState clusterStateWithClosedIndex(IndexMetaData indexMetaData, boolean masterEligible) { + private ClusterState clusterStateWithNonReplicatedClosedIndex(IndexMetaData indexMetaData, boolean masterEligible) { ClusterState oldClusterState = clusterStateWithAssignedIndex(indexMetaData, masterEligible); MetaData metaDataNewClusterState = MetaData.builder() @@ -117,23 +118,41 @@ private ClusterState clusterStateWithClosedIndex(IndexMetaData indexMetaData, bo .version(oldClusterState.metaData().version() + 1) .build(); RoutingTable routingTable = RoutingTable.builder() - .addAsNew(metaDataNewClusterState.index("test")) + .addAsRecovery(metaDataNewClusterState.index("test")) .build(); return ClusterState.builder(oldClusterState).routingTable(routingTable) .metaData(metaDataNewClusterState).version(oldClusterState.getVersion() + 1).build(); } - private ClusterState clusterStateWithJustOpenedIndex(IndexMetaData indexMetaData, boolean masterEligible) { - ClusterState oldClusterState = clusterStateWithClosedIndex(indexMetaData, masterEligible); + private ClusterState clusterStateWithReplicatedClosedIndex(IndexMetaData indexMetaData, boolean masterEligible, boolean assigned) { + ClusterState oldClusterState = clusterStateWithAssignedIndex(indexMetaData, masterEligible); MetaData metaDataNewClusterState = MetaData.builder() - .put(IndexMetaData.builder("test").settings(settings(Version.CURRENT)).state(IndexMetaData.State.OPEN) + .put(IndexMetaData.builder("test").settings(settings(Version.CURRENT) + .put(MetaDataIndexStateService.VERIFIED_BEFORE_CLOSE_SETTING.getKey(), true)) + .state(IndexMetaData.State.CLOSE) .numberOfShards(5).numberOfReplicas(2)) .version(oldClusterState.metaData().version() + 1) .build(); + RoutingTable routingTable = RoutingTable.builder() + .addAsRecovery(metaDataNewClusterState.index("test")) + .build(); + + oldClusterState = ClusterState.builder(oldClusterState).routingTable(routingTable) + .metaData(metaDataNewClusterState).build(); + if (assigned) { + AllocationService strategy = createAllocationService(Settings.builder() + .put("cluster.routing.allocation.node_concurrent_recoveries", 100) + .put(ClusterRebalanceAllocationDecider.CLUSTER_ROUTING_ALLOCATION_ALLOW_REBALANCE_SETTING.getKey(), "always") + .put("cluster.routing.allocation.cluster_concurrent_rebalance", 100) + .put("cluster.routing.allocation.node_initial_primaries_recoveries", 100) + .build()); + + routingTable = strategy.reroute(oldClusterState, "reroute").routingTable(); + } - return ClusterState.builder(oldClusterState) + return ClusterState.builder(oldClusterState).routingTable(routingTable) .metaData(metaDataNewClusterState).version(oldClusterState.getVersion() + 1).build(); } @@ -170,22 +189,25 @@ public void testGetRelevantIndicesWithAssignedShards() { assertThat(indices.size(), equalTo(1)); } - public void testGetRelevantIndicesForClosedPrevWrittenIndexOnDataOnlyNode() { + public void testGetRelevantIndicesForNonReplicatedClosedIndexOnDataOnlyNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); - Set indices = IncrementalClusterStateWriter.getRelevantIndices(clusterStateWithClosedIndex(indexMetaData, false)); + Set indices = IncrementalClusterStateWriter.getRelevantIndices( + clusterStateWithNonReplicatedClosedIndex(indexMetaData, false)); assertThat(indices.size(), equalTo(0)); } - public void testGetRelevantIndicesForClosedPrevNotWrittenIndexOnDataOnlyNode() { + public void testGetRelevantIndicesForReplicatedClosedButUnassignedIndexOnDataOnlyNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); - Set indices = IncrementalClusterStateWriter.getRelevantIndices(clusterStateWithJustOpenedIndex(indexMetaData, false)); + Set indices = IncrementalClusterStateWriter.getRelevantIndices( + clusterStateWithReplicatedClosedIndex(indexMetaData, false, false)); assertThat(indices.size(), equalTo(0)); } - public void testGetRelevantIndicesForWasClosedPrevWrittenIndexOnDataOnlyNode() { + public void testGetRelevantIndicesForReplicatedClosedAndAssignedIndexOnDataOnlyNode() { IndexMetaData indexMetaData = createIndexMetaData("test"); - Set indices = IncrementalClusterStateWriter.getRelevantIndices(clusterStateWithJustOpenedIndex(indexMetaData, false)); - assertThat(indices.size(), equalTo(0)); + Set indices = IncrementalClusterStateWriter.getRelevantIndices( + clusterStateWithReplicatedClosedIndex(indexMetaData, false, true)); + assertThat(indices.size(), equalTo(1)); } public void testResolveStatesToBeWritten() throws WriteStateException { From 55ed4fb460b54b7ee3be582929701981b653dea5 Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Mon, 30 Sep 2019 12:34:29 +0200 Subject: [PATCH 6/6] quicke returns --- .../gateway/IncrementalClusterStateWriter.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java b/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java index 35ba420e5353d..f356f210a4f56 100644 --- a/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java +++ b/server/src/main/java/org/elasticsearch/gateway/IncrementalClusterStateWriter.java @@ -230,15 +230,13 @@ private static Set getRelevantIndicesForMasterEligibleNode(ClusterState s // exposed for tests static Set getRelevantIndices(ClusterState state) { - Set relevantIndices; if (state.nodes().getLocalNode().isMasterNode()) { - relevantIndices = getRelevantIndicesForMasterEligibleNode(state); + return getRelevantIndicesForMasterEligibleNode(state); } else if (state.nodes().getLocalNode().isDataNode()) { - relevantIndices = getRelevantIndicesOnDataOnlyNode(state); + return getRelevantIndicesOnDataOnlyNode(state); } else { - relevantIndices = Collections.emptySet(); + return Collections.emptySet(); } - return relevantIndices; } /**