Skip to content

Antalya 26.6: Cluster request improvements + Iceberg/Parquet read fixes - #2145

Open
zvonand wants to merge 8 commits into
antalya-26.6from
feature/antalya-26.6/auto-grp-pr-1687
Open

Antalya 26.6: Cluster request improvements + Iceberg/Parquet read fixes#2145
zvonand wants to merge 8 commits into
antalya-26.6from
feature/antalya-26.6/auto-grp-pr-1687

Conversation

@zvonand

@zvonand zvonand commented Aug 3, 2026

Copy link
Copy Markdown
Member

Changelog category (leave one):

  • Not for changelog

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

Improve Iceberg and object-storage cluster query handling, and fix Iceberg queries not hitting the Parquet metadata cache. Also fix reads returning NULL for every column when manifests lack per-file column statistics, and fix incorrect results from views over Iceberg tables, including complex column expressions.
Improve Iceberg and object-storage cluster query handling, and fix Iceberg queries not hitting the Parquet metadata cache. Also fix reads returning NULL for every column when manifests lack per-file column statistics, and fix incorrect results from views over Iceberg tables, including complex column expressions (#1687 by @zvonand, #1751 by @zvonand, #1991 by @zvonand, #1759 by @ianton-ru).

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)
  • S3 Export (2h)
  • Swarms (30m)
  • Tiered Storage (2h)

Combined port of 4 PR(s) (group auto-grp-pr-1687). Cherry-picked from #1687, #1751, #1991, #1759.

zvonand and others added 8 commits August 3, 2026 12:45
…next commit)

---
Original cherry-pick message follows:

Merge pull request #1687 from Altinity/feature/antalya-26.3/pr-1414-1

Antalya 26.3 port - improvements for cluster requests
# Conflicts:
#	src/Common/ProfileEvents.cpp
#	src/Core/Settings.cpp
#	src/Disks/DiskObjectStorage/ObjectStorages/IObjectStorage.cpp
#	src/Storages/ObjectStorage/DataLakes/Iceberg/ManifestFileIterator.cpp
#	src/Storages/ObjectStorage/StorageObjectStorageCluster.cpp
#	src/Storages/ObjectStorage/StorageObjectStorageSource.cpp
#	src/Storages/StorageFileCluster.cpp
#	src/Storages/StorageURLCluster.cpp
#	tests/integration/test_s3_cluster/test.py
#	tests/queries/0_stateless/03413_experimental_settings_cannot_be_enabled_by_default.sql
Kept antalya-26.6 code outside the port's scope (AI/JOIN profile events,
distributed_plan_workers_num and query_plan_use_*_logical_join_step settings,
ai_function_* test exceptions, IObjectStorage::prepareRead, query condition
cache loop in createReader, storage_cluster_read_sleep failpoint, hive
partitioning and iceberg failpoint integration tests) and added the port's
changes on top.

Adapted: TaskDistributor::operator() carries the base-branch storage_cluster_read_sleep failpoint that used to live in the replaced task iterator lambda
Adapted: createReader keeps the base-branch while(true) loop (query condition cache); the port's not_a_path retry flag becomes a plain continue
Adapted: FileTaskIterator/UrlTaskIterator get virtual columns from StorageMetadataPtr since getVirtualsList() no longer exists on antalya-26.6
Adapted: relocated deserializeFieldFromBinaryRepr keeps the base-branch TypeIndex::Variant guard
Source-PR: #1687 (#1687)
…next commit)

---
Original cherry-pick message follows:

Merge pull request #1751 from Altinity/feature/antalya-26.3/pr-1631

Antalya 26.3: Fix condition for using parquet metadata cache
# Conflicts:
#	src/Storages/ObjectStorage/StorageObjectStorageSource.cpp
The PR's fix (case-insensitive comparison of the per-object file format when
deciding whether to use the parquet metadata cache) is already present on
antalya-26.6: the condition compares Poco::toLower(format_name), where
format_name == object_info->getFileFormat().value_or(configuration->format).
Kept the base-branch shape and dropped the cherry-pick's use_native_reader_v3
conjunct, which is context (not part of #1751's diff) and no longer exists on
antalya-26.6 (input_format_parquet_use_native_reader_v3 is obsolete there).

Source-PR: #1751 (#1751)
…next commit)

---
Original cherry-pick message follows:

Merge pull request #1991 from Altinity/fix/antalya-26.3/stateless-manifests

Fix Iceberg read optimization returning NULLs for stats-less manifests
# Conflicts:
#	src/Storages/ObjectStorage/StorageObjectStorageSource.cpp
…next commit)

---
Original cherry-pick message follows:

Merge pull request #1759 from Altinity/bugfix/antalya-26.3/view_over_iceberg

Antalya 26.3: Fix view over iceberg
# Conflicts:
#	src/Storages/ObjectStorage/StorageObjectStorageSource.cpp
Kept the source PR's 'materialize(...)' column-name skip check, re-indented to match antalya-26.6's extra nesting level in createReader (the loop moved inside an 'if (!file_meta_data.value()->columns_info.empty())' block on the base branch).

Source-PR: #1759 (#1759)
@zvonand zvonand added releasy Created/managed by RelEasy antalya-26.6 ai-resolved Port conflict auto-resolved by Claude labels Aug 3, 2026
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Workflow [PR], commit [781dc90]

@ianton-ru ianton-ru self-assigned this Aug 3, 2026
@ianton-ru

Copy link
Copy Markdown

@blau-ai

@blau-ai

blau-ai commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

CI triage — @ianton-ru

Verdict: none of the failures are caused by this PR. Of the red checks: the Regression suites fail on a version‑gate that is pre‑existing on the base branch antalya-26.6, and the 4 Stateless failures are timeout flakes on tests unrelated to this diff. The build itself is green (11k+ stateless tests and the regression query workloads ran, so nothing failed to compile). No code change is warranted here.

Evidence is against the head sha 781dc90 (run 30808992973).


1. Regression suites (Iceberg 1/2, ParquetS3, S3Export part/partition, Swarms) — pre‑existing, not PR‑caused

Every real failure in the release suites is a feature support validation check, e.g.:

✘ [ Fail ] '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/swarms/feature support validation'
      ᐅ Swarm object_storage_cluster is not supported by this build; the feature is not present in this version.
✘ [ Fail ] '/iceberg/.../sort key timezone/feature support validation'
      ᐅ Iceberg partition timezone is not supported by this build; ...
✘ [ Fail ] '/iceberg/.../system tables partition sorting keys/feature support validation'
      ᐅ Iceberg partition_key/sorting_key in system.tables is not supported by this build; ...
✘ [ Fail ] '/s3/minio/export tests/export part/feature support validation'
      ᐅ Export merge tree part is not supported by this build; ...

These are the Altinity regression suite's version gates (they compare the ClickHouse build version against the version a feature was introduced in). Two facts make this a base‑branch/suite issue rather than a PR regression:

  • The same suites fail on the base branch. The latest antalya-26.6 MasterCI run 30841312942 fails the identical set — Swarms, Iceberg (1) & (2), S3Export (part) & (partition), on both release and aarch64 — at the same "Run … suite" step.
  • This PR changes no version files (no autoversion/cmake in the diff), so the build reports the same version as base — the gate evaluates identically. Note the gates fire simultaneously across unrelated areas (swarm cluster, export part/partition, iceberg timezone, system.tables sorting keys); a single cluster/Iceberg cherry‑pick cannot remove all of those at once.

Next step: none in this PR. This is a regression‑suite ↔ build‑version alignment issue on antalya-26.6 and should be handled at the branch/suite level (bump the build version the features are gated to, or the suite's version pin).

2. Regression aarch64 (most jobs) — infra flake

Most aarch64 jobs report 1 module (1 errored) with 1 retry (1 ok) — the module errored during environment bring‑up, and the retry passed. Example (Swarms aarch64):

No cache available, downloading docker-compose directly
+ sudo curl -SL .../docker-compose-linux-aarch64 ...
✘ [ Error ] '/swarms' (1m 25s)

That's a setup/download error, not a test assertion — transient infra. Safe to re‑run. (The aarch64 S3Export part job is the one exception: it shows the same real feature support validation failures as the release suite → same version‑gate cause as §1.)

3. Stateless tests (4 failures) — timeout flakes, unrelated to the diff

Job Test Result
amd_debug, parallel 00071_merge_tree_optimize_aio FAIL 302 s
amd_debug, parallel 00154_avro FAIL 794 s
amd_debug, distributed plan, s3 02205_HTTP_user_agent FAIL 490 s
arm_binary, parallel 03634_autopr_output_bytes_estimation FAIL 600 s

All four are long timeouts (300–800 s, one exactly at the 600 s cap) on tests that have nothing to do with object storage / Iceberg / cluster reads (AIO merge, Avro, HTTP user‑agent, byte‑estimation). Classic debug‑build slowness/flakiness. The 3 "Broken" entries are known‑broken tests from broken_tests.yaml, not new failures. Safe to re‑run.


Bottom line

  • PR‑caused: 0
  • Pre‑existing (base‑branch version gate): all Regression release suites + aarch64 S3Export(part)
  • Infra flake: the remaining aarch64 Regression jobs (module errored, retry ok)
  • Timeout flake: the 4 Stateless failures

No fix is needed in this cherry‑pick. I'd re‑run the aarch64 Regression and Stateless jobs to clear the flakes; the feature support validation reds will persist until the regression suite/version gate is aligned on antalya-26.6 (which is a separate, base‑branch task — it is red there too). Happy to dig into any specific suite if you want the full report artifact walked through.

Note: I verified the base branch fails the same regression suites at the same step; I could not open the nested TestFlows report for the base run to byte‑match the message, but the version‑gate mechanism + unchanged build version make the pre‑existing classification solid.

🤖 automated CI triage · read‑only analysis, nothing pushed

@ianton-ru ianton-ru added the verified Approved for release label Aug 4, 2026
@zvonand zvonand added the forwardport This is a frontport of code that existed in previous Antalya versions label Aug 4, 2026
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.6 forwardport This is a frontport of code that existed in previous Antalya versions releasy Created/managed by RelEasy verified Approved for release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants