Review the list of Iceberg issues that are resolved in Cloudera Runtime 7.3.2, its service packs and cumulative hotfixes.
Cloudera Runtime 7.3.2.10000 SP1
- CDPD-97613, CDPD-100780: Materialized view rebuild fails for
Iceberg tables
- 7.3.2.10000
- Previously, materialized view rebuild failed when the
base table was an Iceberg table and the materialized view was implicitly created as an
ACID table due to
metastore.create.as.acid=true resulting in an error.
During rebuild, no transaction started but an entry was created in the
MATERIALIZATION_REBUILD_LOCKS table and not cleared, causing
subsequent attempts to fail due to an existing lock entry.This issues is now fixed by
setting the metastore.create.as.acid property value to
false.
This issue also occurs when the materialized view is
an Iceberg table and is tracked in upstream documentation.
Apache Jira:
HIVE-29436
- CDPD-104751, CDPD-105219:
OPTIMIZE TABLE fails
on Iceberg V3 tables migrated from V2
- 7.3.2.10000
- Previously, running
OPTIMIZE TABLE on
Iceberg V3 tables that were migrated from V2 failed with an
IllegalStateException in ColumnLineageGraph during
query planning. The failure occurred during column lineage processing for hidden columns
on migrated V3 tables, which blocked the optimization cycle needed to clear legacy V2
position delete files on newly promoted V3 tables.This issue is now fixed. Impala
excludes OPTIMIZE TABLE from the column lineage graph.
OPTIMIZE TABLE is a maintenance operation that rewrites an Iceberg
table to a compact form without changing its content.
Apache Jira:
IMPALA-15072
- CDPD-95072, CDPD-99123: Iceberg metadata scan scheduled to a
dedicated executor causes a crash
- 7.3.2.10000
- Previously, on Impala clusters with dedicated
coordinators and executors, certain queries on Iceberg metadata tables could schedule an
Iceberg metadata scan fragment to a dedicated executor instead of the coordinator. This
caused the executor to crash. The issue could occur when a query plan included a
UNION over Iceberg metadata scans, even though an earlier fix
required metadata scan fragments to run on the coordinator.This issue is now fixed.
Impala now schedules Iceberg metadata scan fragments, including those created by
UNION plans, on the coordinator.
Apache Jira:
IMPALA-14638
- CDPD-102486, CDPD-103287:
INSERT fails on
Iceberg V3 tables with IndexOutOfBoundsException
- 7.3.2.10000
- Previously, running
INSERT on Iceberg V3
tables from Impala failed during query planning with an
IndexOutOfBoundsException such as toIndex = 7.
CREATE TABLE and SELECT on the same tables worked as
expected. The failure occurred when lineage tracking for queries is enabled.This
issue is now fixed. Impala now plans and executes INSERT on Iceberg
V3 tables correctly.
Apache Jira:
IMPALA-14952
- CDPD-102654, CDPD-105436: Iceberg
DELETE hangs
when the tuple cache is enabled
- 7.3.2.10000
- Previously, when the Impala tuple cache was enabled and
MT_DOP was greater than 2, DELETE statements on
Iceberg tables could hang indefinitely and remain in a running state. The issue could
occur when you ran multiple DELETE statements on the same table.This
issue is now fixed. Impala now completes Iceberg DELETE statements
correctly when the tuple cache is enabled.
Apache
Jira:
IMPALA-14951
- CDPD-105713, CDPD-105716: Iceberg V2
count(*)
optimization is incorrectly applied to queries that have constant expressions only and
no count(*), causing row loss
- 7.3.2.10000
- Previously, on Iceberg V2 tables that contain delete
files, queries that have constant expressions only and no
count(*) in
the select list (for example, SELECT 1 FROM tbl) returned fewer rows
than they should.This issue is now fixed. Impala no longer applies the Iceberg V2
count(*) optimization to queries that do not include
count(*).
Apache Jira:
IMPALA-14993
- CDPD-102876, CDPD-103045: Time-travel queries can result in
UnsupportedOperationException in
IcebergScanPlanner
- 7.3.2.10000
- Previously, time-travel queries on Iceberg tables from
Impala could result in an
UnsupportedOperationException during query
planning in IcebergScanPlanner. The failure occurred when a time-travel
query had to read files on data nodes that are not used by the data files in the current
snapshot.This issue is now fixed. Impala now successfully plans and executes scans
for valid Iceberg snapshots in time-travel queries.
Apache Jira:
IMPALA-14970
- CDPD-99467: Puffin statistics reading is enabled by default
- 7.3.2.10000
- Previously, the initial support for Puffin statistics
disabled reading them by default.
This issue is now fixed. Reading Puffin statistics
is enabled by default. Impala queries now take available Puffin statistics into
consideration.
Apache Jira:
IMPALA-14848
- CDPD-72897: Inconsistent handling of NOT NULL fields in Iceberg
tables
- 7.3.2.10000
- Previously, since IMPALA-12729, inserting a
NULL value into a
non-nullable column in an Iceberg table could succeed and Impala wrote the
NULL value in the Parquet data file. Query results could be
inconsistent.This issue is now fixed. Impala now does not allow writing
NULL values into non-nullable columns.
Apache Jira:
IMPALA-13273
- CDPD-50404: Optimize
MIN(part_col),
MAX(part_col), and COUNT(DISTINCT part_col) queries
for Iceberg tables
- 7.3.2.10000
- Previously, the
OPTIMIZE_PARTITION_KEY_SCANS optimization could optimize
MIN(key_column), MAX(key_column), and
COUNT(DISTINCT key_column) queries using HMS metadata. For Iceberg
tables, partitioning statistics are not stored in HMS and are obtained through the
Iceberg API instead, so these queries were not optimized in the same way.This issue
is now fixed. For Iceberg V1 and V2 tables without deletes, Impala now optimizes
MIN(key_column), MAX(key_column), and
COUNT(DISTINCT key_column) queries using partitioning statistics
obtained through the Iceberg API when the partition transform is
identity. The optimization partially applies to Iceberg V2 tables
with deletes.
Apache Jira:
IMPALA-11986
- CDPD-101398, CDPD-85719: Query compilation failure in Hive
Iceberg with
ClassCastException
- 7.3.2.10000
- Previously, queries on Hive Iceberg tables with MV
rewrite feature failed during the compilation phase with a
ClassCastException error. This issue occurred due to a bug in the
code and was triggered when the main query contained a condition that always resulted
to false and MV rewrite was applied.
This issue is now fixed.
Cloudera Lakehouse Optimizer
- CDPD-93120, CDPD-91628: In-progress task metadata is cleaned up
periodically
- 7.3.2.10000
- Previously, running the task cleanup executor for Cloudera Lakehouse Optimizer cleaned up the tasks
that were in progress.
This issue is now fixed. The executor cleans up only the
completed and failed tasks.
- CDPD-93759: Improper output encoding in API responses
- 7.3.2.10000
- Previously, certain Cloudera Lakehouse Optimizer API endpoints returned content without properly
encoding special characters such as
<, >,
&, and ". This issue is now fixed.
- CDPD-93760: Missing security response headers in API
responses
- 7.3.2.10000
- Previously, standard security response headers were not
included in Cloudera Lakehouse Optimizer API
endpoint responses. The missing headers included Content-Security-Policy,
X-Content-Type-Options, and Strict-Transport-Security.
This issue is now
fixed.
- CDPD-99255: Cloudera Lakehouse Optimizer API returns misleading Missing Bearer Token error (401)
- 7.3.2.10000
- Previously, when you accessed the Cloudera Lakehouse Optimizer REST API through the
Knox gateway with a valid bearer token but was not a member of the required
authorization groups, the API returned a 401 Unauthorized response with a
misleading error message indicating that the bearer token was missing.
This issue is
now fixed. The API now returns an appropriate authorization error message.
- CDPD-98341: Cloudera Lakehouse Optimizer does not handle deleted Iceberg tables correctly
- 7.3.2.10000
- Previously, when an Iceberg table was dropped, Cloudera Lakehouse Optimizer continued to hold
stale policy-table associations in the registry, expose deleted table names through
read-only APIs, and dispatch policy evaluation tasks against non-existent tables. This
caused misleading metrics, phantom associations in the UI and errors from in-flight
tasks targeting dropped tables.
This issue is now fixed.
Cloudera Runtime 7.3.2.100 CHF1
- CDPD-84534: New configuration to disable block location
retrieval
- 7.3.2.100
- Impala is designed to optimize reads by retrieving file
block locations from storage systems like HDFS and Ozone, and scheduling read operations
on the same nodes where the data resides. In on-premise environments, Impala nodes are
typically colocated with storage nodes. However, in scenarios where they are not
colocated, retrieving the block location information is a resource-intensive
operation.
This issue is now fixed by introducing new Hadoop configuration
properties that allow you to disable the retrieval of block location information
during table loading. Disabling the retrieval of block location information can be
configured in the following ways:
- Globally, using the Hadoop Safety Valve for core-site.xml advanced configuration
snippet.
'impala.preload-block-locations-for-scheduling': 'false'
- By using a Filesystem scheme to disable it for a specific type of
storage.
'impala.preload-block-locations-for-scheduling.scheme.hdfs': 'false'
- By authority, to disable block location retrieval for a specific endpoint when
multiple storage systems are configured with the same
scheme.
'impala.preload-block-locations-for-scheduling.authority.mycluster': 'false'
This
disables block location retrieval only for URIs as
hdfs://mycluster/warehouse/tablespace/....
Apache Jira:
IMPALA-14138
- CDPD-99853, CDPD-99080: Incorrect results when querying multiple
Iceberg snapshots
- 7.3.2.100
- Previously, queries on Iceberg tables that referenced
multiple snapshots (branch, tag, or current) returned incorrect results because the
query planner read data from the same snapshot across all the table references.
This
issue is now fixed. The query planner now correctly resolves snapshots for each table
reference, ensuring accurate query results.
Apache
Jira:
HIVE-29509
Cloudera Lakehouse Optimizer
- CDPD-102237: Registry is not marked dirty after uploading a
policy definition
- 7.3.2.10000
- Previously, after you uploaded a policy definition, the
registry was not marked dirty. As a result, the scheduler did not pick up new policy
definitions until you reschedule explicitly.
This issue is now fixed.
- CDPD-103101: Task event log files accumulate in HDFS after log
ingestion
- 7.3.2.100
- Previously, the task event log files in HDFS required
manual monitoring and cleanup after the log files were ingested.
This issue is now
fixed. The task event log files from HDFS are cleaned up automatically after the log
files are successfully ingested into the Iceberg table.
- CDPD-103026: Cloudera Lakehouse Optimizer task ingestion action fails due to strict timestamp parsing
in Spark3
- 7.3.2.100
- Previously, the task ingestion action failed during Spark validation step because of
the strict timestamp parsing in the Spark 3 service.
This issue is now
fixed.
- CDPD-101842, CDPD-101706: Cloudera Lakehouse Optimizer event policies are triggered even after the
policies are deleted
- 7.3.2.100
- Previously, when you tried to associate the event-based
policy with an individual table, the association failed abruptly if the policy was
already associated with the entire namespace. After you deleted the policy, the
event-based scheduler retained the triggers and continued to schedule the table
maintenance, which was incorrect.
This issue is now fixed.
- CDPD-101534, CDPD-101213: List policy API returns unauthorized
status for wildcard namespace
- 7.3.2.100
- Previously, the GET
/namespaces/{namespace}/policies API returned the 401 Unauthorized
error HTTP status code when you entered the asterisk (*) wildcard for the
{namespace} parameter.
This issue is now fixed.
- CDPD-101284, CDPD-100562: The Edit
Association page displays all namespaces as associated to the Cloudera Lakehouse Optimizer
policy
- 7.3.2.100
- Previously, when you edited an association for a Cloudera Lakehouse Optimizer
policy, the UI incorrectly displayed all the namespaces as associated with the policy or
incorrectly displayed all the namespaces as selected.
This issue is now
fixed.
- CDPD-101183, CDPD-100274, CDPD-101104: API-related performance
issues impact Cloudera Lakehouse Optimizer UI response time
- Previously, API-related performance issues impacted the
View policy page load and the "Create Policy" process response
time in the Lakehouse Optimizer UI.
This issue is now fixed.
- CDPD-84718: Cloudera Lakehouse Optimizer uses the latest
com.google.guava:guava 28.1-jre library dependency.
- 7.3.2.100
- Cloudera Lakehouse Optimizer uses the latest com.google.guava:guava
28.1-jre library dependency.
This issue is now fixed.
Cloudera Runtime 7.3.2
Cloudera Runtime 7.3.2 resolves Iceberg issues and incorporates fixes
from the service packs and cumulative hotfixes from 7.3.1.100 through 7.3.1.706. For a
comprehensive record of all fixes in Cloudera Runtime 7.3.1.x, see
Fixed Issues.
- CDPD-78686: Iceberg tables created in 7.2.17 are not captured in
Atlas when using 7.2.18 or 7.3.1 Atlas server
- 7.3.2
- This issue occurred due to incompatibility between Data
Services, Hive, and Impala hooks in 7.2.17 and the Atlas server in 7.2.18 and 7.3.1.
This fix resolves the compatibility issue and Iceberg tables created in 7.2.17 are
now correctly captured and displayed in the Atlas UI in later versions.
- CDPD-97171: Concurrency issues between compaction and concurrent
write operations
- 7.3.2
- This fix resolves an issue where compaction conflicted
with concurrent write operations causing data corruption, by improving concurrency
handling to ensure stable operations and data consistency.
Apache Jira: HIVE-29437
- CDPD-74040: Dropping Iceberg table with complex type containing
timestamp fails
- 7.3.2
- This fix resolves an issue where dropping an Iceberg
table with complex types such as array, map, or struct containing timestamp fields
failed due to unsupported Hive timestamp type handling, by ensuring proper type
conversion and successful table deletion.
- CDPD-89402: Event processing invalidates Iceberg tables due to
reload failures
- 7.3.2
- This fix resolves an issue where
CatalogServiceCatalog.reloadTableIfExists() resulted in a
ClassCastException during event processing, invalidating Iceberg
tables and triggering full table reloads instead of incremental loading.Apache Jira: IMPALA-14358
- CDPD-72383: COUNT(*) optimization returns incorrect results in
UNION queries on Iceberg V2 tables
- 7.3.2
- A faulty COUNT(*) query optimization caused incorrect
results in UNION queries on Iceberg V2 tables that have delete files, leading to
inconsistent query outputs.
The fix corrects the optimization logic to ensure accurate
results across UNION queries, including scenarios involving post data
changes.
Apache Jira: IMPALA-13756
IMPALA-13249
- CDPD-81076:
LEFT ANTI JOIN fails on Iceberg V2
tables with Delete files
- 7.3.2
- Queries using a
LEFT ANTI JOIN fail with an
AnalysisException if the right-side table is an Iceberg V2 table
containing delete files. For example, consider the following
query:SELECT * FROM table_a a
LEFT ANTI JOIN iceberg_v2_table b
ON a.id = b.id;
The error Illegal column/field
reference'b.input_file_name' of semi-/anti-joined table 'b' is displayed
because semi-joined tuples need to be explicitly made visible for paths pointing
inside them to be resolvable.
The fix updates the
IcebergScanPlanner to ensure that the tuple containing the virtual
fields is made visible when it is semi-joined.
Apache
Jira: IMPALA-13888
- CDPD-78427: Enable MERGE statement for Iceberg tables with
equality deletes
- 7.3.2
- This patch fixes an issue that caused
MERGE
statements to fail on Iceberg tables that use equality deletes.The failure occurred
because the delete expression calculation was missing the data sequence number, even
though the underlying data description included it. This mismatch caused row
evaluation to fail.
The fix ensures the data sequence number is correctly
included in the result expressions, allowing MERGE operations to
complete successfully on these tables.
Apache
Jira: IMPALA-13674
- CDPD-77773: Tolerate missing data files during Iceberg table
loading
- 7.3.2
- This fix addresses an issue where an Iceberg table would fail to
load completely if any of its data files were missing from the file system. This
TableLoadingException left the table in an incomplete state, blocking
all operations on it.Impala now tolerates missing data files during the table loading
process. An exception will only be executed if a query subsequently attempts to read
one of the specific files that is missing.
This change allows other operations
that do not depend on the missing data—such as ROLLBACK, DROP
PARTITION, or SELECT statements on valid partitions—to
execute successfully.
Apache Jira: IMPALA-13654
- CDPD-78508: Skip reloading Iceberg tables when metadata JSON
file is the same
- 7.3.2
- This patch optimizes metadata handling for Iceberg tables,
particularly those that are updated frequently.
Previously, if an event processor was
lagging, Impala might receive numerous update events for the same table (for example,
100 events). Impala would attempt to reload the table 100 times, even if the table's
state was already up-to-date after processing the first event.
With this fix,
Impala now compares the path of the incoming metadata JSON file with the one that is
currently loaded. If the metadata file location is the same, Impala skips the reload,
correctly assuming the table is already unchanged. This significantly reduces
unnecessary metadata processing.
Apache Jira:
IMPALA-13718
- CDPD-82415:
TABLESAMPLE clause of the
COMPUTE STATS statement has no effect on Iceberg tables
- 7.3.2
- This fix resolves a regression introduced by IMPALA-13737. For example, the following query scans the
entire Iceberg table to calculate statistics, whereas it should ideally use only about
10% of the
data.
COMPUTE STATS t TABLESAMPLE SYSTEM system(10);
This fix introduces proper table sampling logic for Iceberg tables, which
can be utilized for COMPUTE STATS. The sampling algorithm previously
located in IcebergScanNode.getFilesSample() is now relocated to
FeIcebergTable.Utils.getFilesSample().
Apache Jira: IMPALA-14014
- CDPD-85228:
IllegalStateException with Iceberg
table with DELETE
- 7.3.2
- Running a query on an Iceberg table fails with an
IllegalStateException error in the following scenario:
- The Iceberg table has delete files for every data file (no data files without
delete files) AND
- An anti-join operation is performed on the result of the Iceberg delete operation
(IcebergDeleteNode or HashJoinNode)
This fix resolves the issue by setting the TableRefIds of the
node corresponding to the Iceberg delete operation (IcebergDeleteNode or HashJoinNode)
to only the table reference associated with the data files, excluding the delete
files.
Apache Jira: IMPALA-14154
- CDPD-87405: Error unnesting arrays in Iceberg tables with DELETE
files
- 7.3.2
- The following error occurred when unnesting a nested array (a 2D
array) from an Iceberg table. This issue was triggered specifically when the table
contained delete files for some, but not all, of its data
files.
Filtering an unnested collection that comes from a UNION [ALL] is not supported yet.
Reading
an Iceberg table with this mixed data and delete file configuration creates a
UNION ALL node in the query execution plan. The system had a check
that explicitly blocked any filtering on an unnested array.
This fix relaxes the
validation check, allowing the operation to proceed if all UNION
operands share the same tuple IDs. This ensures the query can successfully unnest the
array.
Apache Jira: IMPALA-14185
Cloudera Lakehouse Optimizer
- CDPD-91628, CDPD-98014: In-progress task metadata is cleaned up
periodically
- Previously, when the task cleanup executor daemon for
Cloudera Lakehouse Optimizer ran, it cleaned up the tasks that were in progress .
This issue is now fixed. The daemon cleans up only the completed and failed tasks
that are not in progress.
- CDPD-88828: Duplicate tasks run on table
- Previously, Cloudera Lakehouse Optimizer allowed duplicate tasks to run on
a table.
This issue is now fixed.
- CDPD-94583: Filter expression does not transform as expected and
fails during the validation step
- Previously, when an Iceberg table was created using a DDL
command with a bucket transformation specification, and you created a Cloudera Lakehouse Optimizer policy on the table to perform the compaction or
rewrite data files tasks, the tasks failed during the validation step.
This issue is
now fixed.
- CDPD-97815: Associations are lost after Cloudera Lakehouse Optimizer restarts
- 7.3.2.10000
- Previously, the following issues occurred when Cloudera Lakehouse Optimizer restarted:
- The associations defined using the Cloudera Lakehouse Optimizer UI were lost because they were not persisted.
- The namespace-level associations for the tables were not initialized in the
registry.
These issues are now fixed.