Skip to content

Antalya 25.8: Bump to 25.8.28#2023

Open
zvonand wants to merge 116 commits into
antalya-25.8from
bump/antalya-25.8/25.8.28
Open

Antalya 25.8: Bump to 25.8.28#2023
zvonand wants to merge 116 commits into
antalya-25.8from
bump/antalya-25.8/25.8.28

Conversation

@zvonand

@zvonand zvonand commented Jul 8, 2026

Copy link
Copy Markdown
Member

Changelog category (leave one):

  • Not for changelog (changelog entry is not required)

CI/CD Options

Exclude tests:

  • Fast test
  • Integration Tests
  • Stateless tests
  • Stateful tests
  • Performance tests
  • Aarch64 tests
  • All with ASAN
  • All with TSAN
  • All with MSAN
  • All with UBSAN
  • All with Coverage
  • 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)
  • OAuth (5m)
  • Parquet (1.5h)
  • RBAC (1.5h)
  • SSL Server (1h)
  • S3 (2h)
  • S3 Export (2h)
  • Swarms (30m)
  • Tiered Storage (2h)

robot-clickhouse and others added 30 commits May 19, 2026 20:50
…4610

Backport ClickHouse#104610 to 25.8: Use restore Keeper retries for restored parts
The cherry-pick of ClickHouse#102417 resolved the avro submodule conflict to the
wrong commit (477ed40c656b, old API) instead of 3b5d52bdf9f9 (which
adds the `max_depth` parameter to `DataFileReaderBase` and
`compileJsonSchemaFromString`).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…2417

Backport ClickHouse#102417 to 25.8: Check for stack overflow in Avro reader
…5492

Backport ClickHouse#105492 to 25.8: Skip test_numbers_check on release branches
…-pointer dereference in Arrow geo/string column readers
Arrow IPC stores schema-level metadata in `schema->metadata()`, not in
`file_reader->metadata()` (which returns IPC footer custom metadata).
The Arrow reader was passing the wrong metadata to `ArrowColumnToCHColumn`,
so the `geo` key was never found and geoparquet parsing never activated
for Arrow IPC files.

Backport of 14122ed. Required for
test `04260_arrow_geo_corrupted_offsets` (added by ClickHouse#105449) to pass.
…5449

Backport ClickHouse#105449 to 25.8: Fix heap-buffer-overflow and null-pointer dereference in Arrow geo/string column readers
…5636

Backport ClickHouse#105636 to 25.8: Fix test_mysql_dotnet_client by anchoring to /testapp
…4300

Backport ClickHouse#104300 to 25.8: Update mongo-c-driver to 2.3.0
…5776

Backport ClickHouse#105776 to 25.8: Reject empty or NUL-containing MongoDB collection names
…6077

Backport ClickHouse#106077 to 25.8: Bump `curl` from 8.19 to 8.20
…5535

Backport ClickHouse#105535 to 25.8: Fix SEGFAULT in `singleValueOrNull` deserialization for JSON type
…ng 0 rows with partial `SHOW DICTIONARIES` revoke
…subcolumns from compressed Memory table after ALTER
…5464

Backport ClickHouse#105464 to 25.8: Fix SIGSEGV when reading Dynamic subcolumns from compressed Memory table after ALTER
alexey-milovidov and others added 27 commits June 30, 2026 07:16
…eclipse-temurin:21-jdk-alpine`

The `Dockers Build (amd)`/`Dockers Build (arm)` jobs failed because the
`clickhouse/mysql-java-client` image (rebuilt here due to the `Connector/J`
bump) still used the deprecated `openjdk:8-jdk-alpine` base, which the CI
`dockerhub-proxy` can no longer serve:

    failed to resolve source metadata for docker.io/library/openjdk:8-jdk-alpine:
    unexpected status from HEAD request to .../openjdk/manifests/8-jdk-alpine: 500 Internal Server Error

The failure is deterministic (it reproduced identically on a re-run ~2.5h
later), not a transient flake.

On `master` the base image had already been migrated to
`eclipse-temurin:21-jdk-alpine` (and `CLASSPATH` set to `.:`) in an earlier
commit that was never backported to `25.8`; ClickHouse#107693 was developed and verified
on top of that. The cherry-pick brought only the `Connector/J` 9.7.0 bump,
leaving `25.8` on the broken base image, so its image could not be rebuilt.

Align the `25.8` Dockerfile with the verified `master` configuration. Verified
locally: the image builds, the `Connector/J` 9.7.0 jar downloads, and
`MySQLJavaClientTest.java` (identical to `master`) compiles under JDK 21.

CI report: https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=107889&sha=29e01838604f8a31671c7090e7ebcfa725b2a192&name_0=BackportPR&name_1=Dockers%20Build%20%28amd%29

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
…8928

Backport ClickHouse#108928 to 25.8: Fix uniqExact concurrent-merge crash with GROUPING SETS/ROLLUP/CUBE
Release v25.8.28.1-lts

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Workflow [PR], commit [088b465]

…tialsProvider

The AwsAuthSTSAssumeRoleCredentialsProvider constructor gained a new
external_id_ parameter in 3rd position. The Client.cpp call site was
updated but the GlueCatalog.cpp one was not, causing a no-matching-
constructor build failure. Pass creds_config.external_id to match.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.