Repository navigation
Antalya 26.3: Bump to 26.3.60 - #2707
Conversation
…m the line editor of the embedded client
…to schema compiler on long chains of declarations
…kets in TCPHandler
…9368 Backport ClickHouse#119368 to 26.3: Do not deserialize unexpected packets in TCPHandler
…5512 Backport ClickHouse#125512 to 26.3: Never stop the server process from the line editor of the embedded client
…`Interval` column with top-K dynamic filtering
…5900 Backport ClickHouse#125900 to 26.3: Fix stack overflow in the CapnProto schema compiler on long chains of declarations
… from disclosing whether a user exists
…4255 Backport ClickHouse#124255 to 26.3: Bump vendored `expat` from 2.8.2 to 2.9.0
…l` only to zlib-based HTTP compression
…uest lines and headers
…5899 Backport ClickHouse#125899 to 26.3: Apply `http_zlib_compression_level` only to zlib-based HTTP compression
… CREATE TABLE AS inherits credentials
…4905 Backport ClickHouse#124905 to 26.3: Reject CR/LF in outgoing HTTP request lines and headers
…1704 Backport ClickHouse#121704 to 26.3: Stop the native SSH-key handshake from disclosing whether a user exists
…5221 Backport ClickHouse#125221 to 26.3: Fix `ORDER BY ... LIMIT` over an `Interval` column with top-K dynamic filtering
…d in `05316_named_collection_dictionary_override_access`
…ded in HTTP URIs
…TOTP codes and plaintext passwords
… replxx line editor
…RT when a row policy of a table read by a materialized view uses `IN <source table>`
…4075 Backport ClickHouse#124075 to 26.3: Leave only loadable objects behind in `05316_named_collection_dictionary_override_access`
…6120 Backport ClickHouse#126120 to 26.3: Fix out-of-bounds accesses in the replxx line editor
… in PREWHERE condition ordering
…7139 Backport ClickHouse#127139 to 26.3: Fix a crash with estimateCompressionRatio
The expired-method assertions need the fail-close for ambiguous credentials of ClickHouse#110144, which 26.3 does not have: here a password accepted by any method logs in, on the native protocol too. Keep the part this backport changes: a user with `double_sha1_password` and a `scram_sha256_password` or `bcrypt_password` method logs in over MySQL through the `sha256_password` plugin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…6546 Backport ClickHouse#126546 to 26.3: Validate malformed responses from HDFS DataNode and NameNode
…7407 Backport ClickHouse#117407 to 26.3: Fix TOTP bypass in MySQL protocol authentication
…0695 Backport ClickHouse#110695 to 26.3: Combine I/O cost with selectivity in PREWHERE condition ordering
…0887 Backport ClickHouse#120887 to 26.3: Reject deeply nested JSON documents instead of overflowing the stack
…e declared array size when reading ZooKeeper protocol arrays
…6914 Backport ClickHouse#126914 to 26.3: Do not pre-allocate memory for the declared array size when reading ZooKeeper protocol arrays
Release v26.3.60.2-lts Conflicts committed as-is; the next commit resolves them: - cmake/autogenerated_versions.txt (both modified) - src/Disks/DiskObjectStorage/ObjectStorages/S3/diskSettings.cpp (both modified)
Took upstream's 26.3.60 patch and hash in Altinity's version format, and kept both upstream's gcp_oauth check and Altinity's shared_cache lookup in getClient.
|
Backporter: merge conflicts resolved by AI Conflicted files:
Commits:
|
|
@blau-ai the build has failed here: Seems like the conflict resolution wasn't so clean there. Fix it and commit to this PR |
…dRequest The conflict resolution left checkAndNormalizeHeaders(headers) before the 'headers' variable was declared, causing 'use of undeclared identifier headers'. Move the normalize call to right after headers is constructed, matching the pattern used in the GET request path. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Fixed in Cause: the conflict resolution in const auto & context = getContext();
context->getGlobalContext()->getHTTPHeaderFilter().checkAndNormalizeHeaders(headers); // <-- headers not declared yet
...
DB::HTTPHeaderEntries headers = getAuthHeaders(...); // actual declarationFix: moved the const auto & context = getContext();
- context->getGlobalContext()->getHTTPHeaderFilter().checkAndNormalizeHeaders(headers);
...
DB::HTTPHeaderEntries headers = getAuthHeaders(/* update_token = */ true, method, url, extra_headers, body_str);
headers.emplace_back("Content-Type", "application/json");
+ context->getGlobalContext()->getHTTPHeaderFilter().checkAndNormalizeHeaders(headers);
auto wb = DB::BuilderRWBufferFromHTTP(url)That was the only error in the build log ( |
|
The integration tests were not run -- why? @blau-ai |
This comment was marked as outdated.
This comment was marked as outdated.
CI triage for
|
| Check | What failed | Verdict |
|---|---|---|
| Stateless (amd_debug, sequential) | 03271_s3_table_function_asterisk_glob, 02789_filesystem_cache_alignment, 00157_cache_dictionary, plus "Some queries hung" |
Infra: DNS hang |
| Stateless (amd_debug, distributed plan, s3 storage, sequential) | 03271_s3_table_function_asterisk_glob, 02789_filesystem_cache_alignment |
Infra: DNS hang (same pattern) |
| Stateless (amd_ubsan, parallel) | 0 tests failed; only "Some queries hung" (the 10 BROKEN are known entries in broken_tests.yaml) |
Infra: DNS hang |
| RegressionTestsRelease / Swarms | /swarms/feature/node failure/check restart swarm node |
Known flaky, already seen on other PRs |
| DCO | Commits missing Signed-off-by |
Process/sign-off issue, not code |
PR is only the aggregate gate. The tsan, msan and arm jobs show "skipping" because this workflow excludes those tags (Skipped, job name includes excluded tag ...). They didn't fail.
1–3. Stateless suites: queries stuck in getaddrinfo while reading external data
Every hung query is waiting on a DNS lookup for an external HTTPS host. Two cases:
- Datasets read through the web disk (
test.hits). s3('https://clickhouse-public-datasets.s3.amazonaws.com/...').
amd_ubsan, from the hung-check processlist:
elapsed: 721.018406
query: INSERT INTO hits_buffer SELECT * FROM test.hits WHERE CounterID = 800784;
stacktraces: ... __GI___poll
__res_context_send / _nss_dns_gethostbyname4_r / getaddrinfo
Poco::Net::DNS::hostByName (DNS.cpp:80)
... SecureSocketImpl::connectSSL ... HTTPConnectionPool.cpp:579 prepareNewConnection
... ReadWriteBufferFromHTTP ... DB::ReadBufferFromWebServer::nextImpl
amd_debug, sequential (hung check fired twice, both times the same query):
elapsed: 809.785381 / 1067.701101
query: INSERT INTO test.hits_1m SELECT * FROM test.hits LIMIT 1000000
... getaddrinfo ... DB::ReadBufferFromWebServer::nextImpl()
03271_s3_table_function_asterisk_glob failed in both debug jobs with the same error:
Timeout exceeded while receiving data from server. Waited for 300 seconds
(query: SELECT * FROM s3('https://clickhouse-public-datasets.s3.amazonaws.com/wikistat/original/*', NOSIGN) LIMIT 1 ...)
02789_filesystem_cache_alignment and 00157_cache_dictionary hit the test timeout in the same jobs. The test runs one at a time in sequential mode, so once the server is stuck on these lookups the tests behind them time out too.
Why this isn't the PR:
- The bump doesn't touch DNS,
SecureSocketImplorHTTPConnectionPool. Its HTTP-related changes are a CR/LF check inHTTPRequest::writeand GCP OAuth / S3 request validation. Neither is anywhere near a resolver hang. - Other PRs on the same base fail on the same kind of remote-dataset tests (
00172_hits_joins,04033_tpc_ds_*,00152_insert_different_granularity,00071_merge_tree_optimize_aio):- Antalya 26.3 Backport of #102156 - Fix Nullable(X)->Y cross-type ALTER MODIFY COLUMN #2712 (a small ALTER fix): 13 such failures in amd_debug parallel.
- Antalya 26.3 - CI parity from 26.8 #2724 (CI parity): 23 such failures in arm_binary parallel.
- In the ubsan job,
03441_deltalake_clickhouse_public_datasetsand03441_deltalake_clickhouse_virtual_columnswere marked BROKEN withINVESTIGATE - S3 sometimes unreachable. The same network symptom is already tracked there.
Next step: safe to re-run. If these keep showing up on every PR, look at DNS resolution on the stateless runners. That's an infra fix, not a change for this PR.
4. RegressionTestsRelease / Swarms: node failure/check restart swarm node
✘ [ Fail ] '/swarms/feature/node failure/check restart swarm node' (1m 50s)
File ".../swarms/tests/node_failure.py", line 108, in run_long_query
assert result.exitcode in expected_exitcodes, ...
1535 scenarios (1520 ok, 1 failed, 14 skipped)
This test restarts a swarm node while a long query is running, then checks the query's exit code against an allow-list. The report doesn't print the actual exit code. The same scenario failed earlier:
- on Antalya 26.3 Backport of #107059 - Fix NOT_FOUND_COLUMN_IN_BLOCK in the native Parquet V3 reader prewhere handling #2624 (same
antalya-26.3base, Parquet-only change); - on Antalya 26.8: Iceberg: reuse the Puffin object metadata across deletion-vector reads #2665 (
antalya-26.8), where it also failed at the baseline commit without that PR's changes.
It passed on #2724 and #2654. Nothing in this bump touches swarm or cluster task distribution. Known flaky, safe to re-run.
5. DCO
Status is action_required. Some of the 79 commits (mostly upstream ones brought in by the version bump) have no Signed-off-by. Backport PRs on the same base fail DCO the same way (#2712, #2697). Nothing to fix in the code: a maintainer can override DCO in the app, or merge as usual if DCO isn't a required check.
Bottom line: I found no failures caused by the 26.3.60 bump, so I suggest no code changes. Re-running the three stateless jobs and Swarms should be enough. If a re-run fails on a test that doesn't read remote data, ping me again.
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
...
Documentation entry for user-facing changes
...
CI/CD Options
Exclude tests:
Regression jobs to run: