25.8 Stable: Bump to 25.8.28#2024
Open
zvonand wants to merge 162 commits into
Open
Conversation
…nregistering S3 client fails
…s before dynamic_paths ones
…4047 Backport ClickHouse#104047 to 25.8: Bump libarchive form 3.8.6 to 3.8.7
…n with row policies/additional_table_filters
…leTiming deserialization
…INSERTs without materialized views
…2921 Backport ClickHouse#102921 to 25.8: Disable trivial LIMIT optimization with row policies/additional_table_filters
…hen its size is zero (ClickHouse#104164) * Backport ClickHouse#104063 to 25.8: Bypass index uncompressed cache when its size is zero * Add reload_before/reload_after to with_replace_config Cherry-picked from b514957 (the cluster.py portion). The whitespace-only KEEPER_PUBLISH_CLIENT hunk was skipped because that code does not exist on this branch. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: robot-clickhouse <robot-clickhouse@users.noreply.github.com> Co-authored-by: Michael Kolupaev <michael.kolupaev@clickhouse.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…2961 Backport ClickHouse#102961 to 25.8: Use max_insert_threads for plain INSERTs without materialized views
…-checksum-fix-to-25.8
…-to-25.8 Backport fix for GCS over S3 disk broken by aws-sdk-cpp 1.11.771 to 25.8
…4141 Backport ClickHouse#104141 to 25.8: Fix write out of bounds in quantileTiming deserialization
Fix `IPv6StringToNumOrDefault` not properly zeroing output bytes on parse failure. Only one byte was zeroed (`vec_res[i] = 0`) instead of all 16 bytes (`std::fill_n(&vec_res[out_offset], offset_inc, 0)`), causing stale data from previous successful parses to leak into default results. Backport of ClickHouse#93543 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…3773 Backport ClickHouse#103773 to 25.8: Fix UB while parsing dateTime
Backport fix for IPv6StringToNumOrDefault to 25.8
… parsing postgres array values
…ctGetOrDefault with nullable key
…entRowInputFormat`
…1798 Backport ClickHouse#101798 to 25.8: Prevent server termination when unregistering S3 client fails
…2384 Backport ClickHouse#102384 to 25.8: Coalescing merge tree fix array
The test captures EXPLAIN PIPELINE output with its indentation. On 25.8 the test pinned no settings, so under the fuzzer's randomized max_threads the (ReadFromMergeTree) block loses one Resize nesting level (8 -> 6 spaces) and the reference no longer matches. Pin max_threads = 1, optimize_use_implicit_projections = 0 and optimize_use_projections = 0 so the pipeline shape is deterministic, and regenerate the reference against a 25.8 binary. The 25.8 pipeline shape differs from master (no Filter/FilterTransform wrapper) because a17b94e is not in 25.8, so the master reference is not cherry-pickable here. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
`ParserCollectionOfLiterals::parseImpl` builds an array/tuple/map literal
iteratively with an explicit stack of layers. When a nested collection was
finished it was appended to its parent layer with
`layers.back().arr.push_back(literal->value)`, which deep-copies the whole
nested `Field` accumulated so far. For a deeply nested literal such as
`[[[ ... ]]]` this made parsing quadratic in the nesting depth.
`literal` is a local `ASTLiteral` that is discarded immediately after this
line (only the outermost layer is kept as `node`), so its value can be moved
into the parent instead of copied. This makes the parse linear.
This is needed for the backported test `04412_deep_nested_literal_format`.
It is tagged `no-fasttest, no-debug, no-sanitizers`, but the stress test job
deliberately ignores `no-{build}` tags (every test must run under stress), so
`04412` runs under `Stress test (amd_tsan)`. With the quadratic parse, building
the depth-20000 literal in `formatQuery` took ~1620s under ThreadSanitizer and,
being non-cancellable, tripped the hung-check ("Hung check failed, possible
deadlock found"). The same quadratic parse also made `04412` run for ~441s under
`Stateless tests (amd_asan, distributed plan, parallel)` and the server got
killed by signal. With the linear parse the literal is built quickly and
`formatQuery` still reports `TOO_DEEP_RECURSION` (code 306) from the
`FieldVisitorToString` stack guard, exactly as the test expects.
This mirrors the fix already applied to the 26.6 backport in
ClickHouse#108832 and the master change
ClickHouse#108892.
CI report: https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=108896&sha=0a636f95b8f50b19259d8d0280d26e62639e47a4&name_0=BackportPR&name_1=Stress%20test%20%28amd_tsan%29
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Use `std::make_shared` instead of unavailable `make_intrusive` on 25.8. CI: ClickHouse#108847
…es::test_materialized_views_replicated Cherry-pick of the test-only fix merged to `master` in ClickHouse#107119 (commit `6166517952c1`, change `e5479ff4869`). The fix is absent on `25.8`, where `test_materialized_views_replicated` still uses `disconnect_event.wait(90)` and un-timed INSERTs. Under sanitizers the server stop+start budget alone is ~120s, so a restart slower than the ignored 90s wait let the main thread race ahead, and an INSERT to a half-restarted server could block up to 600s and exhaust the 900s pytest session timeout. The fix waits 180s and asserts it, bounds each INSERT with `timeout=60`, catches `QueryTimeoutExceedException`, and stops the warm-up INSERT loop once the restart finishes or its budget elapses. This clears the `test_async_load_databases` failures observed on the `25.8` base and on `backport/25.8/*` PRs (e.g. ClickHouse#107889). True `master` has been clean since ClickHouse#107119 merged (2026-06-18). Closes: ClickHouse#108914 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…3824 Backport ClickHouse#103824 to 25.8: Fix server crash in `getTablesSplitByDependencyLevel` with cyclic dependencies
Accept `external_id` in `S3` `extra_credentials` and pass it to STS assume-role credentials so `04327` succeeds on the `25.8` backport. Also align `02843` with current restore behavior by removing the stale restore failure expectation. PR: ClickHouse#108847
Pass `external_id` to the remaining `BackupReaderS3` construction in read mode after adding the constructor parameter. PR: ClickHouse#108847
The `AddAuthDelta` stores a `shared_ptr<AuthID>` that is shared between the delta and the uncommitted state. During `commit`, the code was move-constructing from this shared `AuthID` via `std::move(*operation.auth_id)`, which could race with a concurrent `preprocess` call reading the same `AuthID` through `uncommitted_state.session_and_auth` without holding `auth_mutex`. Fix by copying instead of moving. https://s3.amazonaws.com/clickhouse-test-reports/json.html?REF=master&sha=3134af4b1eeebf8773015eb04eb1aa1a80bd2f17&name_0=MasterCI&name_1=Integration%20tests%20%28amd_tsan%2C%206%2F6%29 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> (cherry picked from commit 15ad49a)
…8472 Backport ClickHouse#108472 to 25.8: Enforce single-component matching for SSL certificate wildcards
…ivial-count-25.8 Stabilize 04201_trivial_count_with_additional_filter on 25.8
The `initd_test` script in `ci/jobs/install_check.py` on `25.8` runs `clickhouse-client -q 'SELECT version()'` exactly once, immediately after the init.d wrapper prints `Server started`. The wrapper only checks that the pid file exists, but on a slow CI host (notably the `amd_debug` build) the server can take several seconds longer to open the TCP listener on port 9000. The test then fails with `Code: 210. DB::NetException: Connection refused (localhost:9000)`. In the same job the sibling `binary_test` already retries `SELECT version()` in a loop, and on `25.8` backport runs it routinely takes ~4 seconds (4 retries) before the debug server accepts connections, while `initd_test` gives up after the first attempt. This is the same failure mode as ClickHouse#86278, which was fixed on `master` by ClickHouse#106056 ("Extend `Run server init.d` retry budget from 5s to 30s"). That fix never reached `25.8`, so the flake keeps blocking `25.8` backport PRs (for example ClickHouse#108965 and ClickHouse#108917). Because the `25.8` `initd_test` predates the retry loop entirely, ClickHouse#106056 does not cherry-pick cleanly; this commit adapts the same fix by adding a 30-iteration poll loop that breaks early on success, matching the existing `binary_test` and `keeper_test` patterns. `SYSTEMCTL_SKIP_REDIRECT` is intentionally not added, since the `25.8` init.d script does not support it. Related: ClickHouse#86278, ClickHouse#106056 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…etry-25.8 Fix flaky `Run server init.d` install check on 25.8 (backport of ClickHouse#106056)
…0396 Backport ClickHouse#100396 to 25.8: Fix TSan data race in Keeper AuthID between preprocess and commit
…8493 Backport ClickHouse#108493 to 25.8: Fix crash on deeply nested expressions with raised max_parser_depth
…7357 Backport ClickHouse#107357 to 25.8: Avoid storing `S3` credentials in backup metadata
…7119 Backport ClickHouse#107119 to 25.8: Fix flaky test_async_load_databases::test_materialized_views_replicated
…7693 Backport ClickHouse#107693 to 25.8: Length-encode the `info` field of the MySQL `OK` packet
…ash with GROUPING SETS/ROLLUP/CUBE
…8928 Backport ClickHouse#108928 to 25.8: Fix uniqExact concurrent-merge crash with GROUPING SETS/ROLLUP/CUBE
Release v25.8.28.1-lts # Conflicts: # cmake/autogenerated_versions.txt # src/Planner/PlannerJoinTree.cpp
The 25.8.28 point release adds the Filter/FilterTransform wrapper around (ReadFromMergeTree) when additional_table_filters/row policies disable the trivial count/limit optimization (the master shape that d080256 noted was absent from 25.8). Regenerate the two Altinity references to match. Test intent is unchanged: the optimization is still correctly disabled/enabled per case. - 04201_trivial_count_with_additional_filter: filtered_this_table now shows (Filter)/FilterTransform over (ReadFromMergeTree). - 04099_row_policy_trivial_limit_threads: additional_filter block nests one level deeper due to the inserted filter node. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelog category (leave one):
CI/CD Options
Exclude tests:
Regression jobs to run: