ci: narrow macOS scope to datafusion-ffi, cover benchmarks on amd64#22047
Closed
ci: narrow macOS scope to datafusion-ffi, cover benchmarks on amd64#22047
Conversation
The macos-aarch64 job took ~22 min — 68% compile, 25% test. An audit of
macos-only PR failures over Mar–May 2026 (1000 failed PR runs, 30 with
macOS as the sole signal) found that nearly all the unique signal was
either:
- flaky sqllogictest metrics (~67%, e.g. push_down_filter / explain_analyze
.slt files with platform-dependent scan_efficiency_ratio numbers),
- real bugs in datafusion-benchmarks (which amd64 was excluding), or
- one genuinely macOS-specific FFI cdylib loading bug
(datafusion/ffi/src/tests/utils.rs path resolution).
So the only thing macOS uniquely catches is FFI dylib loading. Scope the
macOS job down to `cargo test -p datafusion-ffi --features integration-tests`
and let amd64 pick up the datafusion-benchmarks coverage that was being
dropped by the linux-test --exclude list.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Which issue does this PR close?
Rationale for this change
The
cargo test (macos-aarch64)job is the slowest job inRustCI (~22 min vs 1–6 min for everything else; ~68% of that is compile, ~25% is test execution). I audited 1000 failed PR runs over Mar–May 2026 to figure out what unique signal it actually provides.Findings (full breakdown of the 30 PR runs where macOS was the sole failing job):
explain_analyze.sltpush_down_filter_*.sltbenchmark_runner::cli::testsdatafusion-benchmarks, which amd64 was--excludeingstatistics::tpcds_*datafusion-benchmarkstests::test_ffi_udafetc..dylibvs.soresolution indatafusion/ffi/src/tests/utils.rs)So in 2 months on >1000 failed PR runs, exactly one real bug was caught only by macOS that amd64 couldn't have caught with the right scope. Everything else was either flake noise or
datafusion-benchmarkscoverage that amd64 was skipping.What changes are included in this PR?
linux-test(amd64): drop--exclude datafusion-benchmarks. amd64 now runs benchmark crate tests, which historically only macOS was running.macos-aarch64: scope down tocargo test -p datafusion-ffi --features integration-tests. This is the only place where the platform itself matters (cdylib path resolution).Net effect:
datafusion-ffidependency tree dominates; 9 test binaries run in <1 s combined).datafusion-benchmarksis now covered on the fast 16-CPU amd64 runner instead of the 3-core macos-15 runner..asf.yaml) is unchanged — same job names.Are these changes tested?
Verified locally that
cargo test --profile ci -p datafusion-ffi --lib --tests --features integration-testsbuilds all 9 FFI test binaries and they pass. CI on this PR will exercise both the new amd64 scope and the new macOS scope.Are there any user-facing changes?
No.
🤖 Generated with Claude Code