delta-kernel-rs: switch to default-engine-native-tls, keep MSan exclusion#96856
Conversation
|
Workflow [PR], commit [aa76a0b] Summary: ✅
AI ReviewSummaryThis PR changes the Missing context / blind spots
Final VerdictStatus: ✅ Approve |
|
It looks like We can fork it to replace that with the
Actually, |
|
Let's send patches to upstream to allow configuring these libraries that way. |
|
It turns out there is an open PR to And someone even provided an example of how to integrate it with OpenSSL: apache/arrow-rs-object-store#585 (comment) This would then move the responsibility to implement it back to our fork of There's been no activity on the PR since February 5th, however. I'm going to try following up. |
…ops `ring` The switch to `default-engine-native-tls` removes `ring` from the TLS stack but not from `object_store` itself - `object_store`'s `cloud` feature (required by `aws`, `azure`, `gcp`, `http`) still pulls in `ring` for HMAC. Because `ring`'s hand-written assembly does not emit the symbols MSan expects, the MSan build still fails on link. CI: https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=96856&sha=4f2a80afef07e5b6165794a3091634294cee5f99&name_0=PR&name_1=Build%20%28amd_msan%29 PR: ClickHouse#96856 Re-add the MSan exclusion so the build passes; keep the `native-tls` switch and the `OPENSSL_INCLUDE_DIR` / `CFLAGS` fix - those are independently useful. Tracking upstream: apache/arrow-rs-object-store#585 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is a no-op against the public repo CI (which uses the target branch's workflows). Keeping these files at the fork's previous state so the merge of master can be pushed without the `workflow` OAuth scope. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
@groeneai, the
Could you investigate / link the tracking issues here? Merged |
|
@alexey-milovidov all three are pre-existing flakes that are unrelated to this PR. Public CIDB confirms: 1. 118 failure rows across 59 distinct PRs over the last 7 days, 0 on master, sustained for 14+ days. Today's distribution: #105131 x18, #104816 x6, #105010 x5, #100399 x4, #105020 x3, plus 13 other unrelated PRs, none touching 2. 3. Net: none of the three are caused by this PR. Suggest retriggering the sync or asking the CH Inc Cloud team to clear it once they confirm the two private tests are pre-existing. Session: cron:clickhouse-ci-task-worker:20260519-231500 |
…msan # Conflicts: # .github/workflows/pull_request.yml
Workflow files in this branch were stale or had been deleted as a workaround for GitHub's workflow-scope check. Restoring them to match `master` so the PR diff no longer contains those unrelated changes.
|
Merged current Verified the build change locally on No unresolved review threads; the sole |
|
📊 Cloud Performance Report ✅ AI verdict: This change is build-only: it switches the delta-kernel-rs TLS backend from rustls to native-tls and fixes OpenSSL include paths in CMake. It affects only Delta Lake / object-store TLS plumbing and does not alter the server's query-execution path. The flagged improvements on ClickBench Q4 (-11.2%) and Q15 (-13.6%) cannot plausibly be caused by it, so both are downgraded to inconclusive as run-to-run variance; Q18's borderline -5.7% is likewise noise. No actionable performance change in this PR. clickbenchFlagged queries (3 of 43)
q-value = BH-FDR adjusted p; smaller is stronger evidence. MIRAI flags a query when q < fdr_q (default 0.10) — the value the verdict is based on. tpch_adapted_1_official🟢 No significant changes Debug info
|
…rg::alter PR ClickHouse#106102 (merged 2026-06-05 17:43 UTC) refactored Iceberg::alter to declare last_version and compression_method outside an if/else that assigns them in both branches. Clang-tidy cppcoreguidelines-init-variables flags the bare declarations and Build (arm_tidy) is built with -warnings-as-errors, so the build fails for every PR whose CI ran on master after this commit. CIDB shows 30+ unrelated PRs hitting this in the last 2 days (e.g. ClickHouse#89360, ClickHouse#103540, ClickHouse#106120, ClickHouse#106386, ClickHouse#106404, ClickHouse#106522, ClickHouse#105102, ClickHouse#106590). Initialize both variables to safe defaults at declaration. They are unconditionally overwritten in both if and else branches before use, so behavior is unchanged. The new defaults are only relevant if a future code path skips both assignments, in which case last_version=0 and compression_method=CompressionMethod::None are sane no-op values (the same defaults the old structured-binding form would produce through default-construction of the destructured aggregate). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> (cherry picked from commit d72cac5)
The previous comment claimed that switching to `default-engine-native-tls` "removes `ring` from the TLS stack". That is misleading: `object_store` forces `reqwest/rustls-tls-native-roots` onto `reqwest`, and Cargo unifies features, so `reqwest` is built with both the `native-tls` and `rustls` backends. `ring` therefore remains — both transitively via `rustls` and directly via `object_store` (AWS request HMAC signing). Rewrite the comment to describe this as a partial `native-tls` enablement, which is why the MSan exclusion stays. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Picked this up via
CI was fully green on the previous head; a fresh run will start on the new commit. |
LLVM Coverage Report
|
alexey-milovidov
left a comment
There was a problem hiding this comment.
This is almost noop, but still makes sense.
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes into CHANGELOG.md):
delta-kernel-rswith thedefault-engine-native-tlsfeature so that its own HTTP client (reqwest) can reuse the OpenSSL that ClickHouse already links in. This is only a partialnative-tlsenablement:object_storestill forcesreqwest/rustls-tls-native-roots, soreqwestends up with both thenative-tlsandrustlsbackends.delta-kernel-rsremains disabled under MSan for now becauseringis still compiled in viaobject_store(both transitively throughrustlsand directly for AWS request HMAC signing), and its hand-written assembly does not generate the symbols MSan requires (tracked upstream at Pluggable Crypto / Update reqwest 0.13 apache/arrow-rs-object-store#585).