hyoungjunkim created TAJO-630:
---------------------------------

             Summary: 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)

Reply via email to