Stable 26.3: Bump to 26.3.33 - #2357
Conversation
…n mergeTreeProjection table function
…cy absent on 26.3)
…1842 Backport ClickHouse#111842 to 26.3: Resolve hive partitioning sample path lazily
…3188 Backport ClickHouse#113188 to 26.3: Fix hang when dropping a Refreshable Materialized View during refresh planning
…s with projections (wrong results)
…8329 Backport ClickHouse#108329 to 26.3: Bump `libssh` to 0.12.0
…5132 Backport ClickHouse#115132 to 26.3: Disable distributed index analysis with projections (wrong results)
…th for null bytes
…te in front-coding deserialization
…5734 Backport ClickHouse#105734 to 26.3: Fix singleValueOrNull null-state merge
…D VIEW ... POPULATE losing the source subscription
…2329 Backport ClickHouse#112329 to 26.3: Enforce parent table row policy in mergeTreeProjection table function
`CREATE OR REPLACE MATERIALIZED VIEW` does not exist on 26.3: the parser guards the `MATERIALIZED` keyword with `!replace_view` and only master dropped that guard, in `ed062fd96e1` (first released in 26.5). Both backported tests therefore failed with `Syntax error ... at position 19 (MATERIALIZED)` rather than exercising anything. `04493` also collided with the existing `04493_async_insert_dedup_optimize_on_insert_replicated_merge_tree`. The backported fix is still wanted here, because the same stale storage-cache entry breaks `CREATE OR REPLACE TABLE ... AS SELECT`, which 26.3 does support: the internal drop of the replaced table resolves the temporary name to the new, live table and cancels its merges forever. So both tests are replaced by one that covers that path. Verified in both directions with release binaries: on 26.3.17.110, which lacks the fix, `OPTIMIZE` fails with `Code: 236 ... Cancelled merging parts (ABORTED)`; on 26.7.4.58, which has it, the test passes. Related: ClickHouse#115288 Related: ClickHouse#108728 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…mization when the aggregate argument contains arrayJoin
…5579 Backport ClickHouse#105579 to 26.3: Fix nullptr deref in CREATE TABLE TO INNER UUID without ENGINE
…f settings in `accurateCastOrDefault`""
…e-filling curve is not a key column
…8728 Backport ClickHouse#108728 to 26.3: Fix CREATE OR REPLACE MATERIALIZED VIEW ... POPULATE losing the source subscription
…that hide argument nullability inside uniq
…4620 Backport ClickHouse#114620 to 26.3: Fix serialization of Map-valued settings in access entities
…lt fix
The backported `getSourceNullMap` helper in `castOrDefault.cpp` calls
`ColumnVariant::createNullMap`, which was introduced on master by an
unrelated, unbackported commit ("Fix `toFloat64`/`toUInt32`/`toString`/etc.
on Dynamic ignoring `cast_keep_nullable`"), so the build failed with
`no member named 'createNullMap' in 'DB::ColumnVariant'`.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…3244 Backport ClickHouse#113244 to 26.3: Fix set index on an expression with a Nullable operand
…1144 Backport ClickHouse#101144 to 26.3: Fix out-of-bounds access in getRequiredHeaderPositions for lazy materialization
…prewhere in 26.3 Under parallel replicas with a local plan, lazy materialization drops the ORDER BY column when a row policy on bare `_part_offset` is combined with a PREWHERE that uses `_part_offset` in an expression, and the query fails with NOT_FOUND_COLUMN_IN_BLOCK. The test randomizer reaches this through automatic_parallel_replicas_mode=2 in about a quarter of runs. Master and 26.4+ pass this under parallel replicas, so the tag is 26.3-only. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…7991 Backport ClickHouse#107991 to 26.3: validate discriminators in Variant binary bulk deserialization
…5329 Backport ClickHouse#115329 to 26.3: Fix not applying max_dynamic_subcolumns_in_json_type_parsing for inserts in some cases
…s in logs and system tables
…8210 Backport ClickHouse#118210 to 26.3: Fix PostgreSQL out-of-cycle message recovery and stale unnamed extended-query state
…8220 Backport ClickHouse#118220 to 26.3: Make 05054_embedded_rocksdb_explicit_dir_file_grant stress-restart safe
…8615 Backport ClickHouse#118615 to 26.3: Fix S3 listObjects dropping objects on an empty page with a continuation token
…-column-merge-race Fixing 26.3 flaky tests
…5707 Backport ClickHouse#115707 to 26.3: Fix a use-after-free in the gRPC server
…4233 Backport ClickHouse#114233 to 26.3: Fix std::out_of_range when a space-filling curve is not a key column
…5510 Backport ClickHouse#115510 to 26.3: Reject a bare carriage return in HTTP header names and values
…7523 Backport ClickHouse#117523 to 26.3: Mask credentials in setting values in logs and system tables
Release v26.3.33.24-lts
The nested-alias case used `MD5`, which is registered only under `USE_SSL`. The Fast test build is configured with `-DENABLE_LIBRARIES=0`, so it has no OpenSSL and the `CREATE TABLE` fails there with `Function with name `MD5` does not exist`. Use the non-cryptographic `cityHash64` instead, following the upstream fix. It has no OpenSSL dependency and is not FIPS-restricted, so the case runs in every build configuration while exercising the same inline-alias resolution path inside and outside a lambda. CI report: https://altinity-build-artifacts.s3.amazonaws.com/json.html?PR=2357&sha=8c4326a3e5bd4f5a80f9b4de3227a6566b81fa3a&name_0=PR&name_1=Fast+test&name_2=Tests
CI triage for #2357 (bump to 26.3.33)Verdict — 6 red buckets: 0 caused by the upstream 26.3.33 content, but 3 are real blockers that live in Altinity-fork code. Two are pre-existing fork bugs (one of them newly caught by a test the bump imported), one is a non-idempotent test, plus the usual DCO + regression-flake noise. Nothing here is a defect in the 26.3.33 changes themselves — every failing product path ( Head SHA: 1. Unit tests (asan) + (ubsan) — 🔴 real crash, blocks this PR (latent fork bug, newly caught)Both jobs Root cause (I traced it):
The Concrete fix (pick one):
The first is preferable — it keeps the empty-files-without-blobs optimization. This needs someone familiar with the Antalya plain-rewritable design. 2. Stateless tests — amd_debug / amd_ubsan / amd_asan(dist plan 3/4) / amd_debug(s3) — 🔴 real, but pre-existing, NOT caused by this bumpAll four shards fail on the same test, Why it's not this PR's doing:
Same code + same test ⇒ it fails identically on the base branch. This is a pre-existing bug in the fork's AES fast-path optimization (the test was added by Altinity precisely to guard it, per the header comment referencing ClickHouse#65116). Recommend filing a separate issue against 3. Integration tests (amd_asan, targeted) — 9/460 — 🟡 non-idempotent test, not a product regressionAll 9 failures are the same test under CI's 10× repeat:
Concrete fix: add 4. DCO — 🟡 expected for a bump PRMerge/bump PR carrying ~100 upstream commits without 5. Regression release parquet / parquet_aws_s3 — 🟡 likely flaky, re-run to confirmBoth report the top-level 6. "PR" check — aggregate gate, red only because of the above.What to do
I can prepare the #1 and #3 fixes as a 🤖 automated CI triage by @blau-ai · code/log excerpts are evidence, not verified locally |
38a2534 to
6223939
Compare
…ion under secret masking `MultipleDisksObjectStorageTransaction::copyFile` never received the empty-blobs guard that the backport of ClickHouse#107040 added to `DiskObjectStorageTransaction::copyFile`. Copying a zero-byte file between two object storage disks that share a data source description goes through the former, so `MetadataStorageFromPlainRewritableObjectStorageTransaction::createMetadataFile` got an empty `StoredObjects` and called `front` on it, aborting `unit_tests_dbms` on a libc++ hardening assertion in `DiskObjectStorageTest.CopyEmptyFileToPlainRewritable`. Upstream `master` keeps the guard in a shared `copyFileImpl`; apply it in place here. Masking a secret function argument also renames its constants in the `ActionsDAG`. When such a constant feeds an `arrayJoin`, the masked occurrence stops sharing a name with the unmasked one, the planner emits a second `ARRAY JOIN`, and the query returns a cross product: `04337_encrypt_decrypt_block_modes` grew from 109 to 1635 rows. Leave a secret argument unmasked when its subtree contains an `arrayJoin`. CI report: https://altinity-build-artifacts.s3.amazonaws.com/json.html?PR=2357&sha=f82b79bfb87e586a53c70d1ab0e7dab0980a1131&name_0=PR Tolerate concurrently removed entries in `LocalObjectStorage::listObjects` `listObjects` stats every directory entry through the throwing `getObjectMetadata`, so a file removed between `readdir` and the stat aborts the whole listing with `filesystem error: ... No such file or directory`. `tryGetObjectMetadata` had the same hole: it tolerated a vanished entry in `last_write_time` but then called the throwing `fs::file_size`. `PaimonLatestHint.ReadsConcurrentlyReplacedHintAsSmallObject`, added by the 26.3.33 bump, hits this. Its writer thread publishes `LATEST` by renaming `LATEST.tmp.<n>` over it, and the reader iterations that see the older hint fall back to listing the `snapshot` directory, where those temporary names come and go. Skip an entry that disappears mid-listing, the way a remote object storage omits a concurrently deleted object, and propagate every other error. Upstream carries the same tolerance in the backport of ClickHouse#111483, which reaches 26.3 only after 26.3.33. CI report: https://altinity-build-artifacts.s3.amazonaws.com/json.html?PR=2357&sha=374d4c2a70a2b3a18725bfb374f8d0d9384f88ce&name_0=PR Drop `test_lost` before recreating it in `test_lost_part_during_startup` The test creates a fixed table name over a fixed ZooKeeper path and never drops it, so every repetition after the first fails with `TABLE_ALREADY_EXISTS` when CI runs the module ten times in a row. CI report: https://altinity-build-artifacts.s3.amazonaws.com/json.html?PR=2357&sha=374d4c2a70a2b3a18725bfb374f8d0d9384f88ce&name_0=PR
6223939 to
81da36d
Compare
Changelog category (leave one):
CI/CD Options
Exclude tests:
Regression jobs to run: