Skip to content

Commit

Permalink
testing: log statement on request timeouts
Browse files Browse the repository at this point in the history
  • Loading branch information
mfussenegger committed Jun 24, 2015
1 parent 5b45888 commit 383d390
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -684,7 +684,7 @@ public void testNonDistributedGroupByNoMatch() throws Exception {
") clustered into 1 shards");
ensureYellow();
SQLRequest request = new SQLRequest("select race from characters where details_ignored['lol']='funky' group by race");
SQLResponse response = sqlExecutor.execute(request).actionGet(1000);
SQLResponse response = sqlExecutor.exec(request);
assertEquals(0, response.rowCount());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public void tableCreation() throws Exception {
}

public SQLResponse execute(String stmt) {
response = executor.execute(stmt, new Object[0]).actionGet();
response = executor.exec(stmt);
return response;
}

Expand Down
40 changes: 22 additions & 18 deletions sql/src/test/java/io/crate/testing/SQLTransportExecutor.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
package io.crate.testing;

import io.crate.action.sql.*;
import org.elasticsearch.ElasticsearchTimeoutException;
import org.elasticsearch.action.ActionFuture;
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus;
Expand All @@ -32,6 +33,7 @@
import org.elasticsearch.common.Priority;
import org.elasticsearch.common.logging.ESLogger;
import org.elasticsearch.common.logging.Loggers;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.test.TestCluster;
import org.hamcrest.Matchers;

Expand All @@ -44,7 +46,7 @@ public class SQLTransportExecutor {

private static final ESLogger LOGGER = Loggers.getLogger(SQLTransportExecutor.class);
private final ClientProvider clientProvider;
private static final Long REQUEST_TIMEOUT = 5L;
private static final TimeValue REQUEST_TIMEOUT = new TimeValue(5L, TimeUnit.SECONDS);

public static SQLTransportExecutor create(final TestCluster testCluster) {
return new SQLTransportExecutor(new ClientProvider() {
Expand All @@ -60,38 +62,40 @@ public SQLTransportExecutor(ClientProvider clientProvider) {
}

public SQLResponse exec(String statement) {
return execute(statement, new Object[0]).actionGet(REQUEST_TIMEOUT, TimeUnit.SECONDS);
return exec(new SQLRequest(statement));
}

public SQLResponse exec(String statement, Object... params) {
return execute(statement, params).actionGet(REQUEST_TIMEOUT, TimeUnit.SECONDS);
}

public SQLResponse exec(SQLRequest request) {
return execute(request).actionGet(REQUEST_TIMEOUT, TimeUnit.SECONDS);
return exec(new SQLRequest(statement, params));
}

public SQLBulkResponse exec(String statement, Object[][] bulkArgs) {
return execute(statement, bulkArgs).actionGet(REQUEST_TIMEOUT, TimeUnit.SECONDS);
return exec(new SQLBulkRequest(statement, bulkArgs));
}

public SQLBulkResponse exec(SQLBulkRequest request) {
return execute(request).actionGet(REQUEST_TIMEOUT, TimeUnit.SECONDS);
public SQLResponse exec(SQLRequest request) {
try {
return execute(request).actionGet(REQUEST_TIMEOUT);
} catch (ElasticsearchTimeoutException e) {
LOGGER.error("Timeout on SQL statement: {}", e, request.stmt());
throw e;
}
}

public ActionFuture<SQLResponse> execute(String statement, Object[] params) {
return clientProvider.client().execute(SQLAction.INSTANCE, new SQLRequest(statement, params));
public SQLBulkResponse exec(SQLBulkRequest request) {
try {
return execute(request).actionGet(REQUEST_TIMEOUT);
} catch (ElasticsearchTimeoutException e) {
LOGGER.error("Timeout on SQL statement: {}", e, request.stmt());
throw e;
}
}

public ActionFuture<SQLResponse> execute(SQLRequest request) {
private ActionFuture<SQLResponse> execute(SQLRequest request) {
return clientProvider.client().execute(SQLAction.INSTANCE, request);
}

public ActionFuture<SQLBulkResponse> execute(String statement, Object[][] bulkArgs) {
return clientProvider.client().execute(SQLBulkAction.INSTANCE, new SQLBulkRequest(statement, bulkArgs));
}

public ActionFuture<SQLBulkResponse> execute(SQLBulkRequest request) {
private ActionFuture<SQLBulkResponse> execute(SQLBulkRequest request) {
return clientProvider.client().execute(SQLBulkAction.INSTANCE, request);
}

Expand Down

0 comments on commit 383d390

Please sign in to comment.