You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Quanlong Huang (Jira)" <ji...@apache.org> on 2021/05/17 08:19:00 UTC

[jira] [Created] (IMPALA-10705) Expose query retry failure

Quanlong Huang created IMPALA-10705:
---------------------------------------

             Summary: Expose query retry failure
                 Key: IMPALA-10705
                 URL: https://issues.apache.org/jira/browse/IMPALA-10705
             Project: IMPALA
          Issue Type: Improvement
            Reporter: Quanlong Huang


When encountering failures in submitting the retried query, there are no means for clients to get the reason. To be specifit, in QueryDriver::RetryQueryFromThread(), we handle errors in this pattern:
{code:cpp}
  // Run the new query.
  status = retry_request_state->Exec();
  if (!status.ok()) {
    string error_msg =
        Substitute("Exec for new query with id $0 failed", PrintId(retry_query_id));
    HandleRetryFailure(&status, &error_msg, request_state, retry_query_id);
    return;
  }
{code}
HandleRetryFailure() tries to add the non-ok status to the query state:
{code:cpp}
void QueryDriver::HandleRetryFailure(Status* status, string* error_msg,
    ClientRequestState* request_state, const TUniqueId& retry_query_id) {
  DCHECK(status != nullptr && !status->ok());
  status->AddDetail(
      Substitute("Failed to retry query $0", PrintId(request_state->query_id())));
  status->AddDetail(*error_msg);
  discard_result(request_state->UpdateQueryStatus(*status));
  parent_server_->UnregisterQueryDiscardResult(retry_query_id, false, status);
}
{code}
But it's ignored since the original query already has a non-ok status (otherwise it won't fail):
{code:cpp}
Status ClientRequestState::UpdateQueryStatus(const Status& status) {
  // Preserve the first non-ok status
  if (!status.ok() && query_status_.ok()) {
    UpdateExecState(ExecState::ERROR);
    query_status_ = status;
    summary_profile_->AddInfoStringRedacted(QUERY_STATUS_KEY, query_status_.GetDetail());
  }

  return status;
}
{code}
So the failure is neither logged or shown in the query profile.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org