Skip to content

Antalya 26.3: apassos-1: combined port of 5 PRs#1685

Open
zvonand wants to merge 8 commits intoantalya-26.3from
feature/antalya-26.3/apassos-1
Open

Antalya 26.3: apassos-1: combined port of 5 PRs#1685
zvonand wants to merge 8 commits intoantalya-26.3from
feature/antalya-26.3/apassos-1

Conversation

@zvonand
Copy link
Copy Markdown
Collaborator

@zvonand zvonand commented Apr 23, 2026

Changelog category (leave one):

  • New Feature

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

Add cache for S3 list objects calls and support for exporting MergeTree parts and partitions. Fix Apache Iceberg queries not hitting the parquet metadata cache.
Add cache for S3 list objects calls and support for exporting MergeTree parts and partitions. Fix Apache Iceberg queries not hitting the parquet metadata cache (#1405 by @arthurpassos, #1388 by @arthurpassos, #1593 by @arthurpassos, #1517 by @arthurpassos, #1631 by @arthurpassos).

CI/CD Options

Exclude tests:

  • Fast test
  • Integration Tests
  • Stateless tests
  • Stateful tests
  • Performance tests
  • All with ASAN
  • All with TSAN
  • All with MSAN
  • All with UBSAN
  • All with Coverage
  • All with Aarch64
  • All Regression
  • Disable CI Cache

Regression jobs to run:

  • Fast suites (mostly <1h)
  • Aggregate Functions (2h)
  • Alter (1.5h)
  • Benchmark (30m)
  • ClickHouse Keeper (1h)
  • Iceberg (2h)
  • LDAP (1h)
  • Parquet (1.5h)
  • RBAC (1.5h)
  • SSL Server (1h)
  • S3 (2h)
  • Tiered Storage (2h)

Combined port of 5 PR(s) (group apassos-1). Cherry-picked from #1405, #1388, #1593, #1517, #1631.


#1405: Antalya 26.1 - Forward port of list objects cache #1040

Documentation entry for user-facing changes

Cache for listobjects calls


#1388: Antalya 26.1 - Forward port of export part and partition

Documentation entry for user-facing changes

Export merge tree part and partition (we still need to rebase #1177 afterwards)


#1593: Export Partition - release the part lock when the query is cancelled

During export partition, parts are locked by replicas for exports. This PR introduces a change that releases these locks when an export task is cancelled. Previously, it would not release the lock. We did not catch this error before because the only cases an export task was cancelled we tested were KILL EXPORT PARTITION and DROP TABLE. In those cases, the entire task is cancelled, so it does not matter if a replica does not release its lock.

But a query can also be cancelled with 'SYSTEM STOP MOVES', and in that case, it is a local operation. The lock must be released so other replicas can continue.

Documentation entry for user-facing changes

...


#1517: Fix IPartitionStrategy race condition

IPartitionStrategy::computePartitionKey might be called from different threads, and it writes to cached_result concurrently without any sort of protection. It would be easier to add a mutex around it, but we can actually make it lock-free by moving the cache write to the constructor.

Documentation entry for user-facing changes

...


#1631: Fix condition for using parquet metadata cache

Apache Iceberg queries were not htiting the parquet metadata cache because object_info->getFileFormat() resolves to IcebergDataObjectInfo::getFileFormat, which gets its return value from IcebergObjectSerializableInfo. This field is filled with the value from Apache Iceberg manifest file, and it is upper case by default, which then fails clickhouse check for parquet metadata cache usage.

Documentation entry for user-facing changes

...

zvonand and others added 5 commits April 23, 2026 20:16
…ache

Antalya 26.1 - Forward port of list objects cache #1040

Source-PR: #1405 (#1405)
…rtition

Antalya 26.1 - Forward port of export part and partition

Source-PR: #1388 (#1388)
…ing_the_lock

Export Partition - release the part lock when the query is cancelled

Source-PR: #1593 (#1593)
…trategy

Fix IPartitionStrategy race condition

Source-PR: #1517 (#1517)
@zvonand zvonand added releasy Created/managed by RelEasy ai-resolved Port conflict auto-resolved by Claude labels Apr 23, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 23, 2026

Workflow [PR], commit [dbdad44]

zvonand and others added 3 commits April 24, 2026 19:38
Three new background tasks introduced by the
`enable_experimental_export_merge_tree_partition_feature`
forwardport call ZooKeeper without entering a component scope.
With `enforce_keeper_component_tracking = true` (set in
fast-test config via `zookeeper_enforce_component_name.yaml`),
this triggers a logical error in `Coordination::ZooKeeper::pushRequest`
the moment any `ReplicatedMergeTree` table activates the tasks
on startup, aborting the server. The 247 failing fast-test
replicated-table tests are all downstream effects of this abort
(they surface as KEEPER_EXCEPTION / TABLE_IS_READ_ONLY).

Wrap the entry of each background task method in
`Coordination::setCurrentComponent`, matching the convention used
by other replicated background work (e.g.
`ReplicatedMergeTreeRestartingThread`, `ReplicatedMergeTreeCleanupThread`).

Addresses 247 failing tests in the Fast test shard on
#1685. After this fix
the still-failing set shrank from 247 -> 0 (locally: 245 OK, 2
SKIPPED, 0 FAILED across the same input list).
@zvonand
Copy link
Copy Markdown
Collaborator Author

zvonand commented Apr 27, 2026

RelEasy analyze-fails — DONE

run completed at 2026-04-27T12:49:09Z

  • Head SHA: 52d29f4542 (feature/antalya-26.3/apassos-1)
  • Tests considered: 247 across 1 CI shard(s)
  • Outcomes: 1 done · 0 partial · 0 unrelated · 0 unresolved
  • Commits added by AI: 1 (✅ pushed)
  • Anthropic cost: $70.4348

Per-shard outcomes

✅ DONE — Fast test

247 failed test(s) considered — +1 commit(s) — cost $70.4348
full report

AI narration

…(narration truncated; last 4500 chars)

fter_drop_partition_zookeeper, 03409_coalescing_replicated_merge_tree, 03062_analyzer_join_engine_missing_column, 03100_lwu_13_block_number, 02882_replicated_fetch_checksums_doesnt_match, 03080_incorrect_join_with_merge, 01560_optimize_on_insert_zookeeper, 02438_sync_replica_lightweight, 03100_lwu_02_basics, 01526_alter_add_and_modify_order_zookeeper, 01532_primary_key_without_order_by_zookeeper, 03120_analyzer_dist_join, 03222_parallel_replicas_min_marks_to_read_overflow, 02731_parallel_replicas_join_subquery, 03362_create_table_after_truncate_replicated_database, 03365_json_with_variant_subcolumn, 02461_alter_update_respect_part_column_type_bug, 03776_bad_rewrite_random_order_by, 03100_lwu_11_with_mutations, 02449_check_dependencies_and_table_shutdown, 03231_pr_duplicate_announcement_2, 03100_lwu_42_bytes_limits, 03020_order_by_SimpleAggregateFunction, 00577_replacing_merge_tree_vertical_merge, 03623_pr_join_with_group_by_subquery, 02541_lightweight_delete_on_cluster, 04027_system_start_replicated_view, 02514_database_replicated_no_arguments_for_rmt, 02296_ttl_non_deterministic, 03612_freeze_partition_parallel_verbose_zookeeper, 00980_zookeeper_merge_tree_alter_settings, 04035_insert_deduplication_token_insert_select, 02933_replicated_database_forbid_create_as_select, 03047_on_fly_mutations_skip_index, 03234_replicated_table_parent_znode_cleanup, 02597_column_update_and_replication, 03047_on_fly_update_delete, 01181_db_atomic_drop_on_cluster, 02006_test_positional_arguments_on_cluster, 02907_backup_restore_default_nullable, 03257_reverse_sorting_key_zookeeper, 02910_replicated_merge_parameters_must_consistent, 01149_zookeeper_mutation_stuck_after_replace_partition, 02946_parallel_replicas_force_primary_key, 03221_variant_logical_error, 03247_pr_local_plan_non_constant_in_source, 03100_lwu_22_detach_attach_patches, 03100_lwu_06_apply_patches, 02487_create_index_normalize_functions, 03231_pr_reverse_in_order, 03100_lwu_28_mutation_wait_lwu, 03209_parallel_replicas_lost_decimal_conversion, 03100_lwu_deletes_3, 03100_lwu_31_merge_memory_usage, 02319_sql_standard_create_drop_index, 03283_optimize_on_insert_level, 00661_optimize_final_replicated_without_partition_zookeeper, 03224_invalid_alter, 03032_rmt_create_columns_from_replica, 03409_show_cluster_with_macros, 03100_lwu_41_bytes_limits, 03919_modify_nullable_statistics, 00509_extended_storage_definition_syntax_zookeeper, 03100_lwu_43_subquery_from_rmt, 02597_column_delete_and_replication, 00563_insert_into_remote_and_zookeeper_long, 02020_alter_table_modify_comment, 00715_fetch_merged_or_mutated_part_zookeeper, 03717_async_deduplication_with_mv, 02915_move_partition_inactive_replica, 03716_mutations_parts_in_progress_rmt, 03047_on_fly_mutations_events_2, 01705_normalize_create_alter_function_names, 03274_prewarm_primary_index_cache, 01013_sync_replica_timeout_zookeeper, 03716_mutations_parts_in_progress_rmt_2, 00510_materizlized_view_and_deduplication_zookeeper, 02916_another_move_partition_inactive_replica, 04000_mutation_sync_replica_removed_race, 03305_rename_mutations_counter_replicated, 01045_zookeeper_system_mutations_with_parts_names, 02989_system_tables_metadata_version, 02943_rmt_alter_metadata_merge_checksum_mismatch, 02718_insert_meet_hardware_error, 03716_mutations_parts_postpone_reasons_rmt, 02919_insert_meet_eternal_hardware_error, 02724_limit_num_mutations, 01307_multiple_leaders_zookeeper, 03350_alter_table_fetch_partition_thread_pool, 02887_insert_quorum_wo_keeper_retries, 03783_part_log_mutation_ids_rmt, 03100_lwu_21_on_fly_mutations, 01148_zookeeper_path_macros_unfolding, 03254_system_prewarm_mark_cache, 03305_mutations_counters_replicated, 03277_prewarm_cache_2, 01164_alter_memory_database, 02911_row_policy_on_cluster, 01901_test_attach_partition_from, 03254_prewarm_mark_cache_rmt, 02884_async_insert_skip_settings, 01417_freeze_partition_verbose_zookeeper, 01530_drop_database_atomic_sync, 03169_attach_as_replicated, 02179_dict_reload_on_cluster, 02888_replicated_merge_tree_creation, 03919_attach_partition_all_intersecting_detached_parts, 03985_prewarm_index_mark_cache, 02863_delayed_source_with_totals_and_extremes— all[fixed]`.

clickhouse-test[unrelated] (this entry is the test-runner name, not a real test).

DONE
DONE
DONE


🤖 Posted automatically by releasy analyze-fails. Re-run the command to refresh.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-resolved Port conflict auto-resolved by Claude antalya-26.3 releasy Created/managed by RelEasy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants