Skip to content

Commit

Permalink
Reset cluster block after MessagesIT if memory usage blocks the cluster
Browse files Browse the repository at this point in the history
  • Loading branch information
todvora committed Jul 11, 2023
1 parent 751eccf commit 45c388d
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
import com.github.rholder.retry.WaitStrategies;
import com.google.common.collect.Streams;
import org.graylog.shaded.elasticsearch7.org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest;
import org.graylog.shaded.elasticsearch7.org.elasticsearch.action.admin.cluster.settings.ClusterGetSettingsRequest;
import org.graylog.shaded.elasticsearch7.org.elasticsearch.action.admin.cluster.settings.ClusterGetSettingsResponse;
import org.graylog.shaded.elasticsearch7.org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsRequest;
import org.graylog.shaded.elasticsearch7.org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
import org.graylog.shaded.elasticsearch7.org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest.AliasActions;
Expand Down Expand Up @@ -248,6 +250,14 @@ private String[] existingIndices() {
.toArray(String[]::new);
}


public String getSetting(String setting) {
final ClusterGetSettingsRequest req = new ClusterGetSettingsRequest();
final ClusterGetSettingsResponse response = client.execute((c, requestOptions) -> c.cluster().getSettings(req, requestOptions),
"Unable to read OS cluster setting: " + setting);
return response.getSetting(setting);
}

@Override
public void putSetting(String setting, String value) {
final ClusterUpdateSettingsRequest request = new ClusterUpdateSettingsRequest();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
import com.github.rholder.retry.WaitStrategies;
import com.google.common.collect.Streams;
import org.graylog.shaded.opensearch2.org.opensearch.action.admin.cluster.health.ClusterHealthRequest;
import org.graylog.shaded.opensearch2.org.opensearch.action.admin.cluster.settings.ClusterGetSettingsRequest;
import org.graylog.shaded.opensearch2.org.opensearch.action.admin.cluster.settings.ClusterGetSettingsResponse;
import org.graylog.shaded.opensearch2.org.opensearch.action.admin.cluster.settings.ClusterUpdateSettingsRequest;
import org.graylog.shaded.opensearch2.org.opensearch.action.admin.indices.alias.IndicesAliasesRequest;
import org.graylog.shaded.opensearch2.org.opensearch.action.admin.indices.alias.IndicesAliasesRequest.AliasActions;
Expand Down Expand Up @@ -262,6 +264,13 @@ public void putSetting(String setting, String value) {
"Unable to update OS cluster setting: " + setting + "=" + value);
}

public String getSetting(String setting) {
final ClusterGetSettingsRequest req = new ClusterGetSettingsRequest();
final ClusterGetSettingsResponse response = client.execute((c, requestOptions) -> c.cluster().getSettings(req, requestOptions),
"Unable to read OS cluster setting: " + setting);
return response.getSetting(setting);
}

public void putPersistentSetting(String setting, String value) {
final ClusterUpdateSettingsRequest request = new ClusterUpdateSettingsRequest();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ default String createRandomIndex(String prefix) {
String fieldType(String testIndexName, String source);

void putSetting(String setting, String value);
String getSetting(String setting);

void waitForIndexBlock(String index);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import org.graylog.failure.FailureSubmissionService;
import org.graylog.testing.elasticsearch.ElasticsearchBaseTest;
import org.graylog2.bootstrap.preflight.SearchDbPreflightCheck;
import org.graylog2.indexer.IndexSet;
import org.graylog2.indexer.results.ResultMessage;
import org.graylog2.plugin.Message;
Expand All @@ -32,6 +33,8 @@
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.util.AbstractMap;
Expand Down Expand Up @@ -61,6 +64,8 @@ public abstract class MessagesIT extends ElasticsearchBaseTest {

protected static final IndexSet indexSet = new MessagesTestIndexSet();

private static final Logger LOG = LoggerFactory.getLogger(MessagesIT.class);

protected MessagesAdapter createMessagesAdapter() {
return searchServer().adapters().messagesAdapter();
}
Expand All @@ -79,6 +84,12 @@ public void setUp() throws Exception {
@After
public void tearDown() {
client().cleanUp();
final String block = client().getSetting("cluster.blocks.create_index");
if(Boolean.parseBoolean(block)) {
// high memory usage in these tests may cause a cluster block. If that happens, we should reset this block after the test.
LOG.info("Indexer cluster is blocked after heavy memory usage, test done, resetting the block");
client().resetClusterBlock();
}
}

protected abstract boolean indexMessage(String index, Map<String, Object> source, @SuppressWarnings("SameParameterValue") String id);
Expand Down

0 comments on commit 45c388d

Please sign in to comment.