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)