You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Marta Kuczora (Jira)" <ji...@apache.org> on 2020/04/23 15:10:00 UTC

[jira] [Updated] (HIVE-23286) The clean-up in case of an aborted FileSinkOperator is not correct for ACID direct insert

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

Marta Kuczora updated HIVE-23286:
---------------------------------
    Description: 
In FileSinkOperator there is a code path when the operator is aborted:
{noformat}
    } else {
      // Will come here if an Exception was thrown in map() or reduce().
      // Hadoop always call close() even if an Exception was thrown in map() or
      // reduce().
      for (FSPaths fsp : valToPaths.values()) {
        fsp.abortWritersAndUpdaters(fs, abort, !autoDelete && isNativeTable() && !conf.isMmTable());
      }
{noformat}
In this part, the fsp.abortWritersAndUpdaters method call should consider the conf.isDirectInsert parameter as well. Since this parameter is missing, this method can delete the content of the table.

> The clean-up in case of an aborted FileSinkOperator is not correct for ACID direct insert
> -----------------------------------------------------------------------------------------
>
>                 Key: HIVE-23286
>                 URL: https://issues.apache.org/jira/browse/HIVE-23286
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Marta Kuczora
>            Assignee: Marta Kuczora
>            Priority: Major
>             Fix For: 4.0.0
>
>
> In FileSinkOperator there is a code path when the operator is aborted:
> {noformat}
>     } else {
>       // Will come here if an Exception was thrown in map() or reduce().
>       // Hadoop always call close() even if an Exception was thrown in map() or
>       // reduce().
>       for (FSPaths fsp : valToPaths.values()) {
>         fsp.abortWritersAndUpdaters(fs, abort, !autoDelete && isNativeTable() && !conf.isMmTable());
>       }
> {noformat}
> In this part, the fsp.abortWritersAndUpdaters method call should consider the conf.isDirectInsert parameter as well. Since this parameter is missing, this method can delete the content of the table.



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