This is an automated email from the ASF dual-hosted git repository.

joemcdonnell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit a073dd22b3e4da451efbf6cf27d38d743d5df1d3
Author: stiga-huang <[email protected]>
AuthorDate: Tue Feb 10 16:34:44 2026 +0800

    IMPALA-14657: Use thread-safe set for droppedPartitions_
    
    droppedPartitions_ of HdfsTable keeps the partition instances that are
    recently dropped but haven't been sent in the catalog updates. The set
    will be cleared in the catalog update thread after these deletions are
    collected. However, catalog update thread just acquires read lock on
    this table. So we need a thread-safe set to avoid breaking other readers
    like toMinimalTCatalogObject().
    
    This changes droppedPartitions_ to use a thread-safe set.
    
    Tests
     - Ran TestPartitionDeletion::test_local_catalog_no_event_processing 40
       times.
    
    Change-Id: I12ff7a57c269ee387c1e41048a9e0a6679a586c3
    Reviewed-on: http://gerrit.cloudera.org:8080/23957
    Reviewed-by: Csaba Ringhofer <[email protected]>
    Tested-by: Impala Public Jenkins <[email protected]>
---
 fe/src/main/java/org/apache/impala/catalog/HdfsTable.java | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/fe/src/main/java/org/apache/impala/catalog/HdfsTable.java 
b/fe/src/main/java/org/apache/impala/catalog/HdfsTable.java
index 3dc313372..3d4ef5f61 100644
--- a/fe/src/main/java/org/apache/impala/catalog/HdfsTable.java
+++ b/fe/src/main/java/org/apache/impala/catalog/HdfsTable.java
@@ -28,6 +28,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -308,7 +309,10 @@ public class HdfsTable extends Table implements FeFsTable {
 
   // Dropped partitions since last catalog update. These partitions need to be 
removed
   // in coordinator's cache if there are no updates on them.
-  private final Set<HdfsPartition> droppedPartitions_ = new HashSet<>();
+  // This set is cleared in the catalog update thread after the deletions are 
collected.
+  // However, catalog update thread just acquires read lock on this table. So 
we need a
+  // thread-safe set to avoid breaking other readers like 
toMinimalTCatalogObject().
+  private final Set<HdfsPartition> droppedPartitions_ = 
ConcurrentHashMap.newKeySet();
 
   // pendingVersionNumber indicates a version number allocated to this 
HdfsTable for a
   // ongoing DDL operation. This is mainly used by the topic update thread to 
skip a

Reply via email to