Fixed Issues in Impala

Review the list of Impala issues that are resolved in Cloudera Runtime 7.3.1, its service packs and cumulative hotfixes.

Cloudera Runtime 7.3.1.400 SP2:

CDPD-84214: User authentication consistency for Impala queries
Impala queries previously failed with an authorization error, indicating a mismatch between the user authorized on the Knox connection and the session username. This issue occurred intermittently, typically on the first attempt when running Iceberg queries, especially when cookie-based authentication was used after an initial secure authentication setup.
This issue was resolved by ensuring that user identity is correctly maintained during cookie-based authentication, even after initial secure setup. This prevents mismatches in user verification, allowing queries to proceed without authorization errors.

Apache Jira: IMPALA-14083

Cloudera Runtime 7.3.1.300 SP1 CHF 1

CDPD-68079: Catalog Object Cache Size Calculation in JDK 11+
7.3.1.300
An error occurred in JDK 11+ where the catalog object cache incorrectly calculated the size of an object, resulting in an exception message:
java.lang.reflect.InaccessibleObjectException: Unable to make field private jdk.internal.platform.cgroupv1.CgroupV1SubsystemController jdk.internal.platform.cgroupv1.CgroupV1Subsystem.cpu accessible.
The issue has been resolved.
CDPD-80169: File metadata reload incorrectly skipped on ALTER TABLE
7.3.1.300
Impala skipped reloading file metadata on ALTER TABLE events if changes in the StorageDescriptor were trivial, even when table properties had important changes like a new location.
The fix includes updating the logic to ensure file metadata reload is not skipped when table properties have non-trivial changes.

Apache Jira: IMPALA-13403

CDPD-80168: Missing tables in Top-N memory usage list on Web UI
7.3.1.300
Some tables did not appear in the Top-N Tables list on the /catalog Web UI after metadata loading, such as from a DESCRIBE command. The memory metrics were only updated when a FULL Thrift object was requested.
The fix includes updating memory usage metrics immediately after metadata is loaded for an HDFS table, regardless of the Thrift object type requested.

Apache Jira: IMPALA-13154

CDPD-80170: Inconsistent ACID base folder validation between Impala and Hive
7.3.1.300
7.3.1.300
Impala rejected base folders created by INSERT OVERWRITE or TRUNCATE if earlier write IDs were still open, causing read inconsistencies with Hive.
Updated logic to accept these base folders, matching Hive behavior and ensuring consistent reads across both engines.

Apache Jira: IMPALA-13759

Cloudera Runtime 7.3.1.200 SP1

CDPD-80166: Ignore CREATE_TABLE events for inaccessible databases to prevent event processor error
7.3.1.200
CREATE_TABLE events for databases restricted by authorization caused the Impala event processor to enter an ERROR state
The event processor now ignores such events when the database is not found, logging the issue for administrators.

Apache Jira: IMPALA-11735

CDPD-78277: Customize timezone for UNIXTIME_MICROS columns in Kudu
7.3.1.200
Impala used the server's timezone for UNIXTIME_MICROS columns, causing mismatches with Spark, which uses UTC.
Added an option to set the timezone, ensuring consistent timestamps between Impala and Spark.

Apache Jira: IMPALA-12370

CDPD-79017: Fixed lost exceptions during re-analysis failures
7.3.1.200
When an AnalysisException occurs during re-analysis, calling toSql() throws another exception, causing the original exception to be lost.
The issue was addressed by ensuring the original exception is not lost when an error occurs during query re-analysis. Now, the error message properly logs the root cause instead of being replaced by another exception.

Apache Jira: IMPALA-12811

Cloudera Runtime 7.3.1.100 CHF 1

CDPD-78366: Session management for Hue logins with Impala
7.3.1.100
When logging into the Hue web UI, users occasionally encountered the following error:
The user authorized on the connection 'hue/gateway0.xyz.site@XYZ.SITE' does not match the session username 'hue/gateway1.xyz.site@XYZ.SITE'

This issue arised when a Hue user’s request was routed to a different Hue backend other than the one that initiated the original HS2 session with Impala. With Kerberos authentication, Impala restricts session reuse across different hosts or realms, even if the user remains the same.

To address this, proxy clients like Hue can now reuse HS2 sessions across multiple hosts or realms. This is allowed as these proxy clients can be trusted. This improvement enhances session management and ensures a smoother user experience when using Hue.

Apache Jira: IMPALA-11298

CDPD-78368: Executor crash during runtime filter generation
7.3.1.100
Enabling the MIN_MAX runtime filter in nested loop Joins for certain queries caused out-of-bounds access, leading to executor crashes that prevented any queries from running, disrupting production.
The issue is resolved by ensuring ScalarExprEvaluator properly calls the Open() function, preventing out-of-bounds access and stabilizing query execution.

Apache Jira: IMPALA-12582

CDPD-78364: Impalad crash due to inconsistent tuple IDs during query execution
7.3.1.100
Avoid impalad crash in RowDescriptor::InitTupleIdxMap() by verifying tuple ids in descriptor table received in executor side.

Apache Jira: IMPALA-13378

CDPD-78170: Boolean literals in OR conditions are not simplified as expected
7.3.1.100
Impala currently fails to simplify expressions like "id = 0 OR false" to "id = 0". The root cause is that the CompoundPredicate generated by NormalizeExprsRule is not analyzed, preventing SimplifyConditionalsRule from applying the expected rewrite.
This fix addresses the issue by ensuring that the rewritten CompoundPredicate is analyzed properly, allowing boolean literals in AND/OR conditions to be simplified as expected.

Apache Jira: IMPALA-13203

CDPD-78177: Conjunct registration issue during query rewrite in Impala
7.3.1.100
This issue, introduced in version Cloudera Base on premises7.1.9, caused some queries with expressions that could be rewritten to false to fail with an IllegalStateException: Illegal reference to non-materialized slot
The issue was addressed by reverting an optimization that skipped registering certain conjuncts, ensuring proper registration and assignment during query analysis.

Apache Jira: IMPALA-13302

CDPD-78353: Failed table loads not retried after metastore recovery
7.3.1.100
Tables failed to load when the metastore was down, and queries continued to fail even after the metastore was back up, requiring manual invalidation.
The system now automatically retries loading failed tables when a query is executed, ensuring successful loads once the metastore is up, without manual intervention.

Apache Jira: IMPALA-13120

CDPD-78175: Incorrect results due to predicate pushdown in join condition
7.3.1.100
Impala can incorrectly push predicates to scan nodes, causing wrong results in some join scenarios. For example, a query that should return 0 rows may return incorrect results when specific predicates are used.
Removing analytic predicates with self-referencing TupleIds during query execution prevents incorrect pushdown and resolves the issue.

Apache Jira: IMPALA-13262

CDPD-78351: Support x5c Parameter in JSON Web Keys (JWK)
7.3.1.100
Impala coordinator failed to parse in JSON Web Key Set (JWK) and failed to start the coordinator. This issue is now resolved.

Apache Jira: IMPALA-12559

CDPD-78564: Partition value mismatch during INSERT event processing
7.3.1.100
Impala failed to process some INSERT events due to partition value mismatches. Hive encodes partition strings in file paths using URL encoding, but partition strings in HMS events are not encoded. Impala mismatched partitions during HMS events processing by decoding them incorrectly, causing event processing failures.
The fix includes decoding partition strings only when derived from file paths and not from HMS events to ensure accurate partition mapping.

Apache Jira: IMPALA-13691

CDPD-78559: Prometheus metric name incompatibility with JDK11 and JDK17
7.3.1.100
Impala metrics derived from JVM MemoryPoolMXBean names contain apostrophe characters in JDK11 and JDK17. Since Prometheus does not support apostrophes in metric names, these metrics cannot be consumed by Prometheus.
To address the issue, apostrophes in Prometheus metric names are now automatically translated to underscores, ensuring compatibility with Prometheus requirements.

Apache Jira: IMPALA-13638

CDPD-78161: Database deletion during metadata fetch
7.3.1.100
Running SHOW DATABASES in Impala while simultaneously dropping a database in Hive caused an InconsistentMetadataFetchException due to missing database metadata.
Improved exception handling for operations listing databases and tables. If a database is dropped during metadata fetch, the operation now handles the missing database.

Apache Jira: IMPALA-13170

CDPD-78164: Prevent Impala executor crash on restart
7.3.1.100
Impala crashed when executors received queries with zero fragment instances due to network issues.
Executors now ignore queries with zero fragment instances, and coordinators ensure they do not send such queries.

Apache Jira: IMPALA-13107

CDPD-78363: DDL hangs with SYNC_DDL when Catalogd switches to standby
7.3.1.100
When Catalogd changes from active to standby while waiting for SYNC_DDL version, it stops receiving catalog topic updates from the statestore. This caused DDL queries to hang indefinitely.
To address the issue, Catalogd now regenerates its service ID when changing to standby and throws an exception if the service ID changes while waiting for SYNC_DDL version.

Apache Jira: IMPALA-13134

CDPD-78365: Queries canceled after statestore failover
7.3.1.100
Queries were canceled after a statestore failover due to temporary inconsistencies. While a grace period was already in place for statestore restarts, failovers were not handled the same way.
The fix applies the existing post-recovery grace period to statestore failovers, preventing query cancellations caused by temporary disruptions.

Apache Jira: IMPALA-13159

CDPD-78563: Configurable TCP keepalive for client connections
7.3.1.100
Client connections get lost without an explicit close due to machine resets, network disruptions, or load balancer idle timeouts, leading to resource leaks in Impala.
To address this, new startup options allow you to enable and configure TCP keepalive settings for client connections. These options help detect and close dead connections, preventing premature disconnections.

Apache Jira: IMPALA-13253

CDPD-78162: Handling invalid column stats in table loading
7.3.1.100
Tables with illegal column stats failed to load, preventing operations like DROP STATS or DROP TABLE.
Impala now normalizes invalid stats to -1 and logs warnings, allowing table recovery.

Apache Jira: IMPALA-13102

Cloudera Runtime 7.3.1

CDPD-69856: SIGSEGV crash while accessing query state from concurrent access during query execution
7.3.1
A crash can occur due to concurrent updates and reads of execution state, such as through the WebUI, during query processing.
Ensured atomic updates of execution state to prevent conflicts and crashes during concurrent operations.

Apache Jira: IMPALA-12747

Missing txnId in tableWriteIds Mapping during AllocWriteIdEvent Processing
7.3.1
Fix issue of txnId not being added to tableWriteIds mapping in Catalog.

Apache Jira:: IMPALA-12851

CDPD-73442: Resolution of potential deadlock
7.3.1
This fix addresses a deadlock issue in long-running sessions with an active idle_query_timeout, which caused new queries to hang and prevented existing queries from expiring.

Apache Jira: IMPALA-13313

CDPD-71288: Retry HMS fetch failures to keep event-processor active
7.3.1
Metastore event processor enters an error state due to failures in creating a MetaStoreClient or fetching events, which should be retriable instead.
This issue is now fixed.

Apache Jira: IMPALA-12561

Some local file descriptors not released when using remote spilling
7.3.1
The issue that occurred during remote spilling when writing spilled data to local buffers has been fixed. The disk space occupied by the file can now be reclaimed.

Apache Jira:: IMPALA-12681

Handle empty string in StringValue::LargestSmallerString
7.3.1
StringValue::LeastSmallerString() did not account for empty strings, causing potential exceptions by using an invalid length.
The function now checks if the string is empty and returns an empty string if so. The function was also renamed to LargestSmallerString() to clarify its purpose.

Apache Jira:: IMPALA-12478

CDPD-67493 : ALTER_PARTITION self-event detection for partitions created via INSERT
7.3.1
Fix for incorrect identification on self events.

Apache Jira:: IMPALA-12356

CDPD-67912 : Failures in processing AbortTxnEvent
7.3.1
Fixes event processing errors when write IDs of an AbortTxnEvent are cleaned up by the HMS cleaner housekeeping threads.

Apache Jira:: IMPALA-12827

CDPD-67493: Implicit invalidate metadata on event failures
Implicitly invalidates a table instead of resulting in an ERROR state during event processing.

Apache Jira:: IMPALA-12832

IMPALA-12831: HdfsTable.toMinimalTCatalogObject() failed by concurrent modification
7.3.1
Fix race condition when a table is being invalidated and updated concurrently.

Apache Jira:: IMPALA-12831

Release JNI array if DeserializeThriftMsg failed
7.3.1
Fix conditional JVM heap leak in array allocation on deserialization failures.

Apache Jira:: IMPALA-12969

NPE in executing RELOAD events
v
Fixes the possibility of encountering a NullPointerException when refreshing a partition that has just been dropped.

Apache Jira:: IMPALA-12969

Event processing without hms_event_incremental_refresh_transactional_table
7.3.1
Fix event processor, which is not synching file metadata for non-partitioned ACID tables when incremental refresh on transactional tables is turned off.

Apache Jira:: IMPALA-12835