You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by jh...@apache.org on 2015/01/22 08:23:13 UTC
tajo git commit: TAJO-1308: QueryInprogress can not release when
query is QUERY_ERROR. (jinho)
Repository: tajo
Updated Branches:
refs/heads/master e22c1c57b -> f80ec425d
TAJO-1308: QueryInprogress can not release when query is QUERY_ERROR. (jinho)
Closes #354
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/f80ec425
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/f80ec425
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/f80ec425
Branch: refs/heads/master
Commit: f80ec425dcdd8917d1408bd20f837de39e9f0c4b
Parents: e22c1c5
Author: jhkim <jh...@apache.org>
Authored: Thu Jan 22 16:20:32 2015 +0900
Committer: jhkim <jh...@apache.org>
Committed: Thu Jan 22 16:20:32 2015 +0900
----------------------------------------------------------------------
CHANGES | 3 +++
.../main/java/org/apache/tajo/client/QueryClientImpl.java | 9 ++++++---
.../main/java/org/apache/tajo/master/QueryInProgress.java | 1 +
.../src/main/java/org/apache/tajo/master/QueryManager.java | 3 ++-
.../org/apache/tajo/master/TajoMasterClientService.java | 4 +++-
5 files changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/f80ec425/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 0849e53..0df8983 100644
--- a/CHANGES
+++ b/CHANGES
@@ -169,6 +169,9 @@ Release 0.10.0 - unreleased
BUG FIXES
+ TAJO-1308: QueryInprogress can not release when query is QUERY_ERROR.
+ (jinho)
+
TAJO-1305: With metadata storage of MySQL, columns with the same
character but difference case are not allowed. (jihun)
http://git-wip-us.apache.org/repos/asf/tajo/blob/f80ec425/tajo-client/src/main/java/org/apache/tajo/client/QueryClientImpl.java
----------------------------------------------------------------------
diff --git a/tajo-client/src/main/java/org/apache/tajo/client/QueryClientImpl.java b/tajo-client/src/main/java/org/apache/tajo/client/QueryClientImpl.java
index bab3518..813d5d8 100644
--- a/tajo-client/src/main/java/org/apache/tajo/client/QueryClientImpl.java
+++ b/tajo-client/src/main/java/org/apache/tajo/client/QueryClientImpl.java
@@ -376,7 +376,7 @@ public class QueryClientImpl implements QueryClient {
throws ServiceException {
try {
- ServerCallable<ClientProtos.SerializedResultSet> callable =
+ final ServerCallable<ClientProtos.SerializedResultSet> callable =
new ServerCallable<ClientProtos.SerializedResultSet>(connection.connPool, connection.getTajoMasterAddr(),
TajoMasterClientProtocol.class, false, true) {
@@ -392,7 +392,8 @@ public class QueryClientImpl implements QueryClient {
try {
GetQueryResultDataResponse response = tajoMasterService.getQueryResultData(null, builder.build());
if (response.getResultCode() == ClientProtos.ResultCode.ERROR) {
- throw new ServiceException(response.getErrorTrace());
+ abort();
+ throw new ServiceException(response.getErrorMessage());
}
return response.getResultSet();
@@ -412,7 +413,9 @@ public class QueryClientImpl implements QueryClient {
serializedResultSet.getSerializedTuplesList(),
serializedResultSet.getSerializedTuplesCount(),
getClientSideSessionVars());
- } catch (Exception e) {
+ } catch (ServiceException e) {
+ throw e;
+ } catch (Throwable e) {
throw new ServiceException(e.getMessage(), e);
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f80ec425/tajo-core/src/main/java/org/apache/tajo/master/QueryInProgress.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/QueryInProgress.java b/tajo-core/src/main/java/org/apache/tajo/master/QueryInProgress.java
index 7587543..352ec46 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/QueryInProgress.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/QueryInProgress.java
@@ -222,6 +222,7 @@ public class QueryInProgress {
private boolean isFinishState(TajoProtos.QueryState state) {
return state == TajoProtos.QueryState.QUERY_FAILED ||
+ state == TajoProtos.QueryState.QUERY_ERROR ||
state == TajoProtos.QueryState.QUERY_KILLED ||
state == TajoProtos.QueryState.QUERY_SUCCEEDED;
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f80ec425/tajo-core/src/main/java/org/apache/tajo/master/QueryManager.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/QueryManager.java b/tajo-core/src/main/java/org/apache/tajo/master/QueryManager.java
index 296be04..eebefa7 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/QueryManager.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/QueryManager.java
@@ -170,7 +170,8 @@ public class QueryManager extends CompositeService {
dispatcher.getEventHandler().handle(new QueryJobEvent(QueryJobEvent.Type.QUERY_MASTER_START,
queryInProgress.getQueryInfo()));
} else {
- stopQuery(queryId);
+ dispatcher.getEventHandler().handle(new QueryJobEvent(QueryJobEvent.Type.QUERY_JOB_STOP,
+ queryInProgress.getQueryInfo()));
}
return queryInProgress.getQueryInfo();
http://git-wip-us.apache.org/repos/asf/tajo/blob/f80ec425/tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java b/tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java
index fcc016a..16e4fea 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java
@@ -512,6 +512,7 @@ public class TajoMasterClientService extends AbstractService {
public GetQueryResultDataResponse getQueryResultData(RpcController controller, GetQueryResultDataRequest request)
throws ServiceException {
GetQueryResultDataResponse.Builder builder = GetQueryResultDataResponse.newBuilder();
+ SerializedResultSet.Builder resultSetBuilder = SerializedResultSet.newBuilder();
try {
context.getSessionManager().touch(request.getSessionId().getId());
@@ -524,7 +525,7 @@ public class TajoMasterClientService extends AbstractService {
}
List<ByteString> rows = queryResultScanner.getNextRows(request.getFetchRowNum());
- SerializedResultSet.Builder resultSetBuilder = SerializedResultSet.newBuilder();
+
resultSetBuilder.setSchema(queryResultScanner.getLogicalSchema().getProto());
resultSetBuilder.addAllSerializedTuples(rows);
@@ -536,6 +537,7 @@ public class TajoMasterClientService extends AbstractService {
} catch (Throwable t) {
LOG.error(t.getMessage(), t);
+ builder.setResultSet(resultSetBuilder.build()); // required field
builder.setResultCode(ResultCode.ERROR);
String errorMessage = t.getMessage() == null ? t.getClass().getName() : t.getMessage();
builder.setErrorMessage(errorMessage);