Vendor OpenSSL for the fuzz build to survive apt/pkg-config outages - #351
Draft
Saurabh Singh (saurabh500) wants to merge 1 commit into
Draft
Vendor OpenSSL for the fuzz build to survive apt/pkg-config outages#351Saurabh Singh (saurabh500) wants to merge 1 commit into
Saurabh Singh (saurabh500) wants to merge 1 commit into
Conversation
The GH-Rust Fuzz Test pipeline (definitionId 2207) intermittently fails because CI agents cannot apt install libssl-dev/pkg-config, leaving openssl-sys unable to locate OpenSSL and breaking the whole fuzz stage (builds 168173, 168079, 167989 -- Run Fuzzer fails at build time, not a libFuzzer crash). Enable the openssl vendored feature, target-gated to the non-Windows, non-macOS targets where mssql-tds links OpenSSL, so openssl-sys compiles OpenSSL from source and the fuzz build no longer depends on apt-provided system OpenSSL. AB#47459 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
📊 Code Coverage Report
Diff CoverageDiff: main...HEAD, staged and unstaged changesNo lines with coverage information in this diff. 🔗 Quick Links |
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.
Summary
The GH-Rust Fuzz Test pipeline (
definitionId=2207, "Rust TDS Lib Fuzz Testing") intermittently fails onmain. This PR makes the fuzz build independent of apt-provided OpenSSL so those runs stop going red.Work item: AB#47459
Root cause (not a fuzz crash)
I investigated the recent failing runs (168173, 168079, 167989 — all 2026-08-19). In every case the "Run Fuzzer" step fails at build time, not at fuzz time:
openssl-syscannot locate OpenSSL becauselibssl-dev/pkg-configwere not installed (intermittent apt/mirror outage on the CI agent). This is not a libFuzzer crash:fuzz-crashes-*pipeline artifacts were produced (log showsNo artifacts directory found).fuzz_tds_clientin build 168173) ran to completion withoom/timeout/crash: 0/0/0and reportedNo crashes found.So the fuzz stage is silently skipped whenever the agent can't
apt installOpenSSL, and the pipeline reports a build failure.Fix
Enable the
opensslvendored feature inmssql-tds/fuzz/Cargo.toml, target-gated to the samecfg(all(not(windows), not(target_os = "macos")))targets wheremssql-tdsalready links OpenSSL.openssl-systhen compiles OpenSSL from source, so the fuzz build no longer depends on apt-providedlibssl-dev/pkg-config.This is a shared
openssl-sys(also backsnative-tls), so no new crate is introduced — only the vendored build path is turned on for the fuzz crate.Testing
cargo metadata --manifest-path mssql-tds/fuzz/Cargo.toml --no-depsparses cleanly.cargo bfmtpasses.bclippy/bteston the workspace are unaffected; the vendored build is exercised by the Linux fuzz pipeline itself.Notes
Draft pending a green GH-Rust Fuzz Test run on this branch. Associated ADO bug AB#47459 documents the failing runs and links build 168173 as evidence.