Repository navigation
Antalya 26.8: Bump to 26.8.27 - #2572
Conversation
…ing malformed JSON and Dynamic columns
…ed Field in a binary encoded type
…ostings out of the shared postings cache
…ka and NATS engines
…ard lock during pool admission
…on when the key directory cannot be created
…3337 Backport ClickHouse#123337 to 26.8: Fix a crash when reading an ORC file whose root type is not a struct
…e extracting text-index search terms
…3336 Backport ClickHouse#123336 to 26.8: Do not dereference a null `logs_queue` in `OwnSplitChannel::log`
…7730 Backport ClickHouse#117730 to 26.8: Memory-track the JSON `FLATTENED` path list read from `Native`
…0313 Backport ClickHouse#120313 to 26.8: Hide secret arguments in `EXPLAIN AST` output
…e a `COLUMNS` matcher in `EXPLAIN AST` instead of throwing
…7765 Backport ClickHouse#117765 to 26.8: Fix out-of-bounds reads when reading malformed JSON and Dynamic columns
…2667 Backport ClickHouse#122667 to 26.8: Fix server crash on a deeply nested Field in a binary encoded type
…2574 Backport ClickHouse#122574 to 26.8: Use less schema comparison
…3228 Backport ClickHouse#123228 to 26.8: Keep flattened text index query postings out of the shared postings cache
…1825 Backport ClickHouse#121825 to 26.8: Use the remote host filter in Kafka and NATS engines
…8352 Backport ClickHouse#118352 to 26.8: Avoid holding the async-insert shard lock during pool admission
…n with argument-less function
…2211 Backport ClickHouse#122211 to 26.8: Undo a filesystem cache reservation when the key directory cannot be created
Keep only the `GetAggregatesVisitor` guard: `readExpressionChild` does not exist on this branch, so use the existing `readChildOfType` checks and adapt the test. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…7314 Backport ClickHouse#117314 to 26.8: Strip `FixedString` padding before extracting text-index search terms
…2870 Backport ClickHouse#122870 to 26.8: Hide a `Backup` locator named like a `COLUMNS` matcher in `EXPLAIN AST` instead of throwing
…stributed-26.8 26.8: Fix analyzer setting in views over `Distributed`
…2441 Backport ClickHouse#112441 to 26.8: Fix/sync transaction log access
…nvert_query_to_cnf` when a filter uses an alias twice
…1113 Backport ClickHouse#121113 to 26.8: Fix SIGSEGV on JSON-AST projection with argument-less function
…3414 Backport ClickHouse#123414 to 26.8: Fix crash and wrong result of `convert_query_to_cnf` when a filter uses an alias twice
… when two CTEs of a set subquery read one shared CTE
…1010 Backport ClickHouse#121010 to 26.8: Fix missing materialized-CTE gate when two CTEs of a set subquery read one shared CTE
…5076 Backport ClickHouse#125076 to 26.8: Fix StorageKafka2: memory leak with partitions shuffling
…mbedded client of the web terminal and SSH
…5515 Backport ClickHouse#125515 to 26.8: Keep the user's settings in the embedded client of the web terminal and SSH
…n validating a mutation, not when running it
…7351 Backport ClickHouse#117351 to 26.8: Check `allow_statistics` only when validating a mutation, not when running it
Release v26.8.27.9-lts
A single-shard `remote` with a nested table function is sent to the remote server as an initial query, so that server applies `output_format_native_encode_types_in_binary_format` and `input_format_native_decode_types_in_binary_format` to the `Native` blocks of the wire, while the server-side `Connection` read and wrote them with type names. Make `Connection` without format settings from the caller follow the same rule as the server (see `getNativeWireFormatSettings`). Fixes `05317_native_binary_types_between_servers`: https://altinity-build-artifacts.s3.amazonaws.com/json.html?PR=2572&sha=98fe94fb9ce108eda1b9bca34cb71b325c1058e4&name_0=PR&name_1=Fast+test&name_2=Tests #2572
… a table function In Antalya a single-shard `remote` with a nested table function runs an initial query on the remote server as the user of the connection, so `mergeTreeTextIndex` checks the access of that user instead of refusing a secondary query. https://altinity-build-artifacts.s3.amazonaws.com/json.html?PR=2572&sha=98fe94fb9ce108eda1b9bca34cb71b325c1058e4&name_0=PR&name_1=Fast+test&name_2=Tests #2572
|
@blau-ai analyze CI fails, fix related fails directly in this branch |
…ats test The backport of ClickHouse#122770 refactored findTableEngineSecretArguments() to dispatch through a std::function find_secrets, but the Iceberg branch kept calling findIcebergTableEngineSecretArguments() directly without assigning find_secrets and without returning. Execution then fell through to the trailing find_secrets() call with an empty std::function, so masking any CREATE TABLE ... ENGINE=Iceberg(...) (via hasSecretParts() during query logging) threw std::bad_function_call. Assign the lambda like every sibling branch so classifyPositionalArguments() still runs before it. This crashed test_storage_iceberg_disks in integration tests. The upstream 26.8.27 merge moved Iceberg data-file column sizes from an in-memory byteSize() estimate in update() to the real on-disk sizes reported by the output format at finalize() (addColumnSizesOnDisk()). The gtest still expected update() alone to populate column sizes, so getColumnSizes() was empty. Populate sizes via addColumnSizesOnDisk() to match the new design (addColumnSizesOnDisk uses +=, so restoring byteSize() in update() would double-count). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: blau-ai <blau-ai@users.noreply.github.com>
CI triage for
|
| Check | Why | Action |
|---|---|---|
Integration — test_s3_cluster/* (shards 1,3,4,5) |
Timed out while waiting for instance 'c2.s0_0_1' to start — the whole test cluster failed to come up (environment), not a code failure |
Re‑run |
| Keeper Stress Tests (PR) | ClickHouse binary not found at .../ci/tmp/clickhouse — binary not provided to the job |
Re‑run / pipeline wiring |
| Parser memory check | Resolve master binary ERROR: No master clickhouse-examples artifact was found — missing master baseline |
Re‑run after master artifact exists |
| Grype Scan (keeper / server‑alpine) | Base‑image CVEs (4 high/critical keeper, 1 server‑alpine) — inherent to deps, not changed by this PR | Triage separately; typically non‑blocking for a bump |
| DCO | one or more commits lack Signed-off-by (common on backport/merge chains) |
Needs sign‑off / DCO override by a maintainer; my commit is signed |
Note: I couldn't enumerate the 4th failure of the amd_debug, parallel stateless suite individually; it almost certainly overlaps the same geo‑pruning family.
Next steps: re‑run after the push to clear the infra flakes and confirm fixes #1/#2; the geo‑pruning 04510–04514 regression still needs an Iceberg owner.
|
@blau-ai fix the failing related tests directly in this branch |
The 26.8.27 bump combined two Iceberg changes that each predate the other: upstream ClickHouse#121392 added addColumnSizesOnDisk(), which iterates every schema field and throws LOGICAL_ERROR if a field reports no on-disk size; Altinity #2363 added the `unknown`-type write path, which strips columns that are not physically written (e.g. a column of only the Iceberg `unknown` type) and marks their schema positions via excludeColumns(). The getters (getColumnSizes / getNullCounts / getLowerBounds / getUpperBounds) all skip excluded positions, but addColumnSizesOnDisk() did not, so finalize() aborted with "Written data file does not report the on-disk size of column <name>" and took the server down. Skip excluded positions there too, matching the getters. This crashed test_storage_iceberg_no_spark/test_unknown_type.py (the write tests, plus the cascade of Connection-refused failures after the server died). For normal tables excludeColumns() is never called, so isExcluded() is always false and behavior is unchanged. Validated by CI on this PR, not locally (no build in this environment). Signed-off-by: blau-ai <blau-ai@users.noreply.github.com> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Backport ClickHouse#122770 added a generic fail-closed pass, classifyPositionalArguments(), run before each engine/function's own finder: it hides every positional argument that appears after the first `key = value` argument. The Altinity-only `storage_type = ...` argument of the Iceberg engine and table function is exactly such a leading named argument, so for Iceberg(storage_type = 's3', <url>, <access_key>, <secret>) the generic pass marked <url>, <access_key> AND <secret> as secret before the Iceberg finder (which skips storage_type and delegates to the S3/Azure finder) could classify them, producing Iceberg(storage_type = 's3', '[HIDDEN]', '[HIDDEN]', '[HIDDEN]') instead of hiding only the secret. Bypass the generic pass for Iceberg by returning right after its finder, exactly as BigQuery already does; the Iceberg finder skips storage_type and delegates to findS3*/findAzure*, which run their own positional-after-named fail-close (classifyS3Arguments), so the security property is preserved. The database-engine Iceberg path uses a different finder (findDataLakeCatalogSecretArguments) and is left unchanged. Fixes test_mask_sensitive_info/test.py::test_create_table and ::test_table_functions. Validated by CI on this PR, not locally (no build in this environment). Signed-off-by: blau-ai <blau-ai@users.noreply.github.com> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Looked at the failing checks on this bump and pushed fixes for two of the three test clusters directly to ✅ Fixed (2 commits pushed)1. 2.
|
…est bounds Iceberg writes now keep the bounds of every column whose bounds can be serialized, instead of dropping all bounds when one column (here the `Point` column) can't be serialized. The tests inserted a placeholder row `(0, ...)` and then replaced its data file with a fixture holding ids 1..4, so the manifest declared `id` bounds of `[0, 0]` and `allow_experimental_iceberg_read_optimization` substituted the constant `0` for `id` without reading the file. Insert the fixture's own rows instead, so the manifest statistics stay true for the fixture that replaces the data file. #2572 (comment)
…nExecutor` after merge The merge of `antalya-26.8` kept both the bump-branch trailing `external_storages_` constructor parameter and the one added after `object_storage_`, producing a duplicate parameter and member. Keep the `antalya-26.8` layout. https://altinity-build-artifacts.s3.amazonaws.com/json.html?PR=2572&sha=7d6e1e5fde8e4467bf7590a1c4da27d72368a50f&name_0=PR&name_1=Build%20%28amd_debug%29 #2572
|
CI triage for Verdict: no clearly PR-caused code failures. The core ClickHouse CI (praktika) is green — builds, stateless, integration, unit, stress, AST fuzzer and BuzzHouse all pass; a few stateless/stress jobs were still running at the time of writing. All the red checks fall into: a process gate (DCO), image CVE scans (Grype), two CI-infra artifact errors, and four flaky/environment-sensitive regression suites. Breakdown: 0 PR-caused · 2 process/scan gates · 2 infra · 4 flaky/environment (+ Iceberg (2) still running). Process / scan gates (not code)DCO — fail. The branch contains merge commits and upstream robot/backport commits with no Grype Scan (keeper 4 high/critical, server-alpine 1) — fail. These scan the built container images for CVEs in OS/base-image packages, not PR logic. A version bump pulls newer upstream images, so newly-disclosed CVEs surface here. Review the per-image Grype HTML reports linked on the checks; these are normally triaged/accepted or fixed by a base-image bump in the release process, and do not indicate a correctness problem in this diff. CI infrastructure (not code) — safe to re-runParser memory check — ERROR. Failing sub-step is Resolve master binary: Keeper Stress Tests (PR) — ERROR. Regression (testflows) — flaky / environmentoauth — fail. Failures concentrated in the access control and groups sub-features, with generic swarms — fail (4/1535). Failing scenarios: cluster discovery with wrong cluster name, node failure / check restart swarm node, and cpu overload / cpu overload all swarm nodes. These are chaos/resilience and CPU-stress tests — timing-sensitive and classically flaky. Re-run. s3_azure_1 — fail (2 scenarios) and tiered_storage_cas — fail. Both fail with Suggested next steps
No code change is required from the diff for any of the above. I have not pushed anything. — @blau-ai (automated triage; evidence from the praktika |
Changelog category (leave one):
CI/CD Options
Exclude tests:
Regression jobs to run: