CI: extended tests don't run on changes to functions-aggregate / functions-window, which the aggregate and window fuzzers exercise
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 1/5
- Thời gian dự kiến
- Dưới một giờ
- Mức phù hợp với người mới
- 88/100
Hướng nghiên cứu
Bắt đầu với .github/workflows/extended.yml và kiểm tra bộ lọc paths hiện có cho workflow extended-tests. Thêm phạm vi bao phủ cho các đường dẫn của hai crate functions, sau đó xác minh cấu hình workflow và xác nhận rằng các thay đổi trong những đường dẫn đó sẽ kích hoạt các bài kiểm tra mở rộng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Is your feature request related to a problem or challenge?
The fuzz tests in datafusion/core/tests/fuzz_cases/ are gated behind the extended_tests feature, which only .github/workflows/extended.yml enables. On pull requests that workflow is limited to these paths:
paths:
- 'datafusion/physical*/**/*.rs'
- 'datafusion/expr*/**/*.rs'
- 'datafusion/optimizer/**/*.rs'
- 'datafusion/sql/**/*.rs'
- 'datafusion-testing'
Two of the fuzzers exercise crates that aren't on that list:
aggregate_fuzz.rsbuilds queries with.with_aggregate_function(...)formin,max,sum,count,median,first_value,last_value— implemented indatafusion/functions-aggregate/.window_fuzz.rsimportsdatafusion_functions_windowanddatafusion_functions_aggregate.
So a PR that changes an aggregate or window function implementation does not run the fuzz suite built to exercise it. It is still caught by the post-merge run on main, so this is a gating gap rather than missing coverage — the cost is a red main and a revert instead of a red PR.
A recent concrete case: #24104 "fix: support untyped NULL input for median" (merged 2026-08-09) changed datafusion/functions-aggregate/src/median.rs, and was itself fixing a regression between DataFusion 53 and 54. The workflows that ran on its head SHA were CodeQL, Dependencies, Detect breaking changes, Dev, Labeler, Large files PR check, and Rust; Datafusion extended tests did not run.
To be clear about what that does and doesn't show: aggregate_fuzz generates typed columns with a null percentage, whereas that bug involved an untyped NULL literal, so the fuzzer very likely would not have caught this particular issue. The point is narrower — a fuzzer-covered function was modified and its fuzzer didn't run.
Describe the solution you'd like
Add the two crates the fuzzers actually import:
- 'datafusion/functions-aggregate/**/*.rs'
- 'datafusion/functions-window/**/*.rs'
Measured cost. Over the last 50 merged PRs, 2 (4%) would newly trigger the workflow. On a recent main run (31366139826) the three jobs run in parallel: sqlite suite 9m32s, extended_tests 9m21s, hash collisions 5m20s — about 9.5 minutes wall-clock, ~24 runner-minutes.
I deliberately kept datasource* and catalog* out of this proposal even though some fuzz modules import them: 9 of the 12 unfiltered PRs in that sample were datasource*, and six were a single one-off refactor(proto): migrate <X>Source serde batch, so including them would raise the trigger rate to ~24% for what looks like a temporary campaign.
Describe alternatives you've considered
- Per-job path conditions — put the wider path set on
linux-test-extendedonly, leaving the sqlite and hash-collision jobs on the current narrow trigger. Same wall-clock, but ~9 runner-minutes instead of ~24. More surgical, slightly more complex than a two-line paths addition. - Do nothing. Post-merge detection on
mainmay already be the intended trade-off, given that #19228's motivation forextended_testswas local developer inner-loop speed rather than CI cost. If that's the case it would be useful to have it stated, since the path list reads as a deliberate "most likely to trigger errors" selection.
Additional context
Verified locally at 308e212: cargo test -p datafusion --features extended_tests --profile ci --test fuzz --no-run takes 2m09s cold, and all 114 fuzz tests pass in 4m48s (--test-threads=4). aggregate_fuzz is 10 tests, window_fuzz is 2; together they run in 39.6s. So the two fuzzers relevant here are a small fraction of the suite.
I'm happy to open a PR for whichever option you prefer.
- Ngôn ngữ chính
- Rust
- Star
- 9.4k
- Fork
- 2.5k
- Merge trung bình
- 4 ngày 13 giờ
- Pull request đã merge (30 ngày)
- 353
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của apache/datafusion
-
[Bug] atan2 does not normalize -0.0 the way Spark doesCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởbug spark
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/datafusion#26333 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug help wanted unparser
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/datafusion#26316 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Deduplicate bucket computation in width_bucket_interval_mdn_exactCó thể đã có người làm @nightcityblade đã nhận 1 ngày trước. Đang mởenhancement good first issue help wanted spark tech debt
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
apache/datafusion#26307 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Use the shared aggr_test_schema in CSV scan tests instead of a local copyCó thể đã có người làm @med9110 đã nhận 1 ngày trước. Đang mởcore enhancement good first issue help wanted tech debt
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
apache/datafusion#26306 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
gcd benchmarks pass number_rows: 0 for 100k-row inputsCó thể đã có người làm @med9110 đã nhận 1 ngày trước. Đang mởbug functions good first issue help wanted tech debt
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
apache/datafusion#26297 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của apache/datafusion
Issue tương tự
-
area/infra good first issue type/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 60/100
cristim/AztecCraft#92 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
charles-hood/DiagramCraft#51 ·
-
S: Untriaged T: Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
libnyanpasu/clash-nyanpasu#5788 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
area:cli bug good first issue priority:medium
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
rtk-ai/rtk#4589 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày