You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Matthew Jacobs (JIRA)" <ji...@apache.org> on 2017/08/25 00:29:00 UTC

[jira] [Resolved] (IMPALA-5799) INSERTs into Kudu can crash if a column is dropped concurrently

     [ https://issues.apache.org/jira/browse/IMPALA-5799?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matthew Jacobs resolved IMPALA-5799.
------------------------------------
       Resolution: Fixed
    Fix Version/s: Impala 2.10.0

commit dc7792c98026323ad87d49fa6f616ee378cc30cd
Author: Thomas Tauber-Marshall <tm...@cloudera.com>
Date:   Wed Aug 16 12:06:02 2017 -0700

    IMPALA-5799: Kudu DML can crash if schema has changed

    We check that the number/types of columns in a Kudu DML match the
    underlying table during analysis. However, it's possible that the
    schema may be modified between analysis and execution, and if it's
    modified in incompatible ways it can cause Impala to crash.

    Once the KuduTable object has been opened by the KuduTableSink, its
    schema will remain the same, so we can check in Open() that the schema
    is what we're expecting.

    If the schema changes between Open() and when the WriteOp is sent to Kudu,
    Kudu will send back an error and we already handle this gracefully.

    Testing:
    - Added an e2e test that concurrently inserts into a Kudu table while
      dropping and then adding a column. It relies on timing, but running
      in a loop locally it caused Impala to crash every time without this
      change.

    Change-Id: I9fd6bf164310df0041144f75f5ee722665e9f587
    Reviewed-on: http://gerrit.cloudera.org:8080/7688
    Reviewed-by: Matthew Jacobs <mj...@cloudera.com>
    Tested-by: Impala Public Jenkins

> INSERTs into Kudu can crash if a column is dropped concurrently
> ---------------------------------------------------------------
>
>                 Key: IMPALA-5799
>                 URL: https://issues.apache.org/jira/browse/IMPALA-5799
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend
>    Affects Versions: Impala 2.10.0
>            Reporter: Thomas Tauber-Marshall
>            Assignee: Thomas Tauber-Marshall
>            Priority: Critical
>              Labels: kudu
>             Fix For: Impala 2.10.0
>
>
> When inserting into a Kudu table, we check that the table schema matches the values to insert during planning. Once the KuduTableSink opens the KuduTable object, we're guaranteed that the KuduTable's schema won't change.
> However, there's a window of vulnerability between the checks in the FE and opening the table in the BE where the schema could change. The only change that we allow that is incompatible is dropping a column, which can cause Impala to crash.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)