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/03/24 05:36:40 UTC
tajo git commit: TAJO-1396 Unexpected IllegalMonitorStateException
can be thrown in QueryInProgress
Repository: tajo
Updated Branches:
refs/heads/master 8d0146b8d -> a9215852d
TAJO-1396 Unexpected IllegalMonitorStateException can be thrown in QueryInProgress
Closes #416
Signed-off-by: Jinho Kim <jh...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/a9215852
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/a9215852
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/a9215852
Branch: refs/heads/master
Commit: a9215852d4bf9e5d7a29598a992ef1884f098d4b
Parents: 8d0146b
Author: navis.ryu <na...@apache.org>
Authored: Thu Mar 12 22:15:49 2015 +0900
Committer: Jinho Kim <jh...@apache.org>
Committed: Tue Mar 24 13:33:40 2015 +0900
----------------------------------------------------------------------
CHANGES | 3 +++
.../org/apache/tajo/master/QueryInProgress.java | 22 ++++++++++++++------
.../org/apache/tajo/master/QueryManager.java | 8 +------
3 files changed, 20 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/a9215852/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index ad3a6bd..811992c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -38,6 +38,9 @@ Release 0.11.0 - unreleased
BUG FIXES
+ TAJO-1396: Unexpected IllegalMonitorStateException can be thrown
+ in QueryInProgress. (Contributed by navis. Committed by jinho)
+
TAJO-1414: Two RemoteException in rpc module.
(Contributed by navis. Committed by jihun)
http://git-wip-us.apache.org/repos/asf/tajo/blob/a9215852/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 c24dd90..668a770 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
@@ -95,7 +95,7 @@ public class QueryInProgress {
queryMasterRpcClient.killQuery(null, queryId.getProto(), NullCallback.get());
}
} catch (Throwable e) {
- catchException(e);
+ catchException("Failed to kill query " + queryId + " by exception " + e, e);
} finally {
writeLock.unlock();
}
@@ -125,6 +125,11 @@ public class QueryInProgress {
public boolean startQueryMaster() {
try {
writeLock.lockInterruptibly();
+ } catch (Exception e) {
+ catchException("Failed to lock by exception " + e, e);
+ return false;
+ }
+ try {
LOG.info("Initializing QueryInProgress for QueryID=" + queryId);
WorkerResourceManager resourceManager = masterContext.getResourceManager();
WorkerAllocatedResource resource = resourceManager.allocateQueryMaster(this);
@@ -141,7 +146,7 @@ public class QueryInProgress {
return true;
} catch (Exception e) {
- catchException(e);
+ catchException("Failed to start query master for query " + queryId + " by exception " + e, e);
return false;
} finally {
writeLock.unlock();
@@ -163,12 +168,17 @@ public class QueryInProgress {
try {
writeLock.lockInterruptibly();
+ } catch (Exception e) {
+ LOG.error("Failed to lock by exception " + e.getMessage(), e);
+ return;
+ }
+ try {
if(queryMasterRpcClient == null) {
connectQueryMaster();
}
if(queryMasterRpcClient == null) {
- LOG.info("No QueryMaster conneciton info.");
+ LOG.info("No QueryMaster connection info.");
//TODO wait
return;
}
@@ -186,14 +196,14 @@ public class QueryInProgress {
querySubmitted.set(true);
getQueryInfo().setQueryState(TajoProtos.QueryState.QUERY_MASTER_LAUNCHED);
} catch (Exception e) {
- LOG.error(e.getMessage(), e);
+ LOG.error("Failed to submit query " + queryId + " to master by exception " + e, e);
} finally {
writeLock.unlock();
}
}
- public void catchException(Throwable e) {
- LOG.error(e.getMessage(), e);
+ public void catchException(String message, Throwable e) {
+ LOG.error(message, e);
queryInfo.setQueryState(TajoProtos.QueryState.QUERY_FAILED);
queryInfo.setLastMessage(StringUtils.stringifyException(e));
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/a9215852/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 b1fa17d..0c8d8ce 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
@@ -87,7 +87,7 @@ public class QueryManager extends CompositeService {
this.scheduler = new SimpleFifoScheduler(this);
} catch (Exception e) {
- catchException(null, e);
+ LOG.error("Failed to init service " + getName() + " by exception " + e, e);
}
super.serviceInit(conf);
@@ -304,12 +304,6 @@ public class QueryManager extends CompositeService {
return executedQuerySize.get();
}
- private void catchException(QueryId queryId, Exception e) {
- LOG.error(e.getMessage(), e);
- QueryInProgress queryInProgress = runningQueries.get(queryId);
- queryInProgress.catchException(e);
- }
-
public synchronized QueryCoordinatorProtocol.TajoHeartbeatResponse.ResponseCommand queryHeartbeat(
QueryCoordinatorProtocol.TajoHeartbeat queryHeartbeat) {
QueryInProgress queryInProgress = getQueryInProgress(new QueryId(queryHeartbeat.getQueryId()));