You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Joe McDonnell (JIRA)" <ji...@apache.org> on 2017/09/06 23:19:01 UTC
[jira] [Resolved] (IMPALA-5892) Fault injection at
DescriptorTbl::Create() can lead to query hang
[ https://issues.apache.org/jira/browse/IMPALA-5892?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joe McDonnell resolved IMPALA-5892.
-----------------------------------
Resolution: Fixed
Fix Version/s: Impala 2.11.0
commit e4b13b4c672b71dafc8ff48fa3a91bde22089886
Author: Joe McDonnell <jo...@cloudera.com>
Date: Fri Sep 1 14:50:45 2017 -0700
IMPALA-5892: Allow reporting status independent of fragment instance
Queries can hit an error that is not specific to a
particular fragment instance. For example, QueryState::StartFInstances()
calls DescriptorTbl::Create() before any fragment instances
start. This location has no reason to report status via a
particular fragment, and there is currently no way to report
status otherwise. This leads to a query hang, because the
status is never propagated back to the coordinator.
This adds the ability to report status that is not associated
with a particular fragment instance. By reporting status,
the coordinator will now correctly abort the query in the
case of the QueryState::StartFInstances() scenario described.
Change-Id: I4cd98022f1d62a999c7c80ff5474fa8d069eb12c
> Fault injection at DescriptorTbl::Create() can lead to query hang
> -----------------------------------------------------------------
>
> Key: IMPALA-5892
> URL: https://issues.apache.org/jira/browse/IMPALA-5892
> Project: IMPALA
> Issue Type: Bug
> Components: Backend
> Affects Versions: Impala 2.9.0
> Reporter: Joe McDonnell
> Assignee: Joe McDonnell
> Fix For: Impala 2.11.0
>
>
> When doing fault injection testing, I found that QueryState::ReportExecStatusAux() does not include enough information for the coordinator to detect an error when 'fis' is null. Specifically, TReportExecStatusParam does not include status unless a TFragmentInstanceExecStatus is inserted into instance_exec_status, and that structure requires a fragment instance id. For a general error (such as one reported via ReportExecStatusAux() in QueryState::StartFInstances() when DescriptorTbl::Create() fails), this lack of status information means that the coordinator will never detect that the query failed for certain error condtitions.
> TReportExecStatusParam needs to include a general status field for reporting this information.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)