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

Zoltán Borók-Nagy resolved IMPALA-13499.
----------------------------------------
    Resolution: Duplicate

> REFRESH on Iceberg tables can lead to data loss
> -----------------------------------------------
>
>                 Key: IMPALA-13499
>                 URL: https://issues.apache.org/jira/browse/IMPALA-13499
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Catalog
>    Affects Versions: Impala 4.4.1
>            Reporter: Saulius Valatka
>            Priority: Critical
>
> When running a REFRESH statement on an Iceberg table the catalog loads it 
> from the Hive metastore and later performs an {{alter_table}} 
> [here|https://github.com/apache/impala/blob/bdce7778b239f6fbf8ea89ea32b91a83c8017828/fe/src/main/java/org/apache/impala/catalog/IcebergTable.java#L445].
>  It does so without taking a Hive lock, meaning that if any external process 
> commits to the table between load and alter, the newly committed 
> "metadata_location" property will be overwritten with the previous value and 
> effectively will result in data loss.
> It should either take a Hive lock when doing this, or, if 
> "{{{}iceberg.engine.hive.lock-enabled = false{}}}" use 
> "{{{}alter_table_with_environmentContext{}}}" and set 
> {{expected_parameter_key}} / expected_parameter_value to metadata_location / 
> <previous version>.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to