[
https://issues.apache.org/jira/browse/TAJO-630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13910408#comment-13910408
]
hyoungjunkim commented on TAJO-630:
-----------------------------------
When the failure occurred, the following logged in the QueryMaster.
{code}
2014-02-23 22:25:55,617 ERROR querymaster.QueryUnitAttempt
(QueryUnitAttempt.java:handle(425)) - Can't handle this event at current state
of ta_1393161894205_0001_000004_000101_00)
org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event:
TA_UPDATE at TA_ASSIGNED
at
org.apache.hadoop.yarn.state.StateMachineFactory$MultipleInternalArc.doTransition(StateMachineFactory.java:388)
at
org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:302)
at
org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:46)
at
org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:448)
at
org.apache.tajo.master.querymaster.QueryUnitAttempt.handle(QueryUnitAttempt.java:423)
at
org.apache.tajo.master.querymaster.QueryMasterTask$TaskAttemptEventDispatcher.handle(QueryMasterTask.java:241)
at
org.apache.tajo.master.querymaster.QueryMasterTask$TaskAttemptEventDispatcher.handle(QueryMasterTask.java:233)
at
org.apache.tajo.master.TajoAsyncDispatcher.dispatch(TajoAsyncDispatcher.java:137)
at
org.apache.tajo.master.TajoAsyncDispatcher$1.run(TajoAsyncDispatcher.java:79)
{code}
> QueryMasterTask never finished when Internal error occurs.
> ----------------------------------------------------------
>
> Key: TAJO-630
> URL: https://issues.apache.org/jira/browse/TAJO-630
> Project: Tajo
> Issue Type: Bug
> Reporter: hyoungjunkim
>
> Query state is changed to QUERY_ERROR when QueryEventType.INTERNAL_ERROR
> occurs, and QueryFinishEventHandler invoked.
> However, there is no check logic for QUERY_ERROR. So stopQuery() never
> called.
> QueryMasterTask.java
> {code}
> private class QueryFinishEventHandler implements
> EventHandler<QueryMasterQueryCompletedEvent> {
> @Override
> public void handle(QueryMasterQueryCompletedEvent event) {
> QueryId queryId = event.getQueryId();
> LOG.info("Query completion notified from " + queryId);
> while (!isTerminatedState(query.getState())) {
> try {
> synchronized (this) {
> wait(10);
> }
> } catch (InterruptedException e) {
> LOG.error(e);
> }
> }
> LOG.info("Query final state: " + query.getState());
> queryMasterContext.stopQuery(queryId);
> }
> private boolean isTerminatedState(QueryState state) {
> return
> state == QueryState.QUERY_SUCCEEDED ||
> state == QueryState.QUERY_FAILED ||
> state == QueryState.QUERY_KILLED;
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)