[BUG] Flaky: DeterministicBB deterministic_across_runs/swath1_threads8 — run 3 diverges under work_limit
Maintainer thường phản hồi trong vòng 1 ngày
@akifcorduk đang làm issue này rồi.
Từ ngày 25/8/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
DeterministicBB/DeterministicBBInstanceTest.deterministic_across_runs/swath1_threads8
fails intermittently in conda-cpp-tests. 1 of 528 tests; the rest pass.
Seen on run 32773153161
(13.3.0, 3.13, arm64, ubuntu26.04, l4, latest-driver, latest-deps). Surfaced on
#1763, which changes only .github/workflows/*.yaml for wheel publishing, so it
is not caused by that PR.
What happened
Params: ("/mip/swath1.mps", 8, 60, 4) — 8 CPU threads, time_limit=60,
work_limit=4. Seed for this occurrence: 480747044 (the test draws from
std::random_device per run and prints it, so each CI run exercises a different
seed).
The test solves the same problem three times with the same seed and compares.
Runs 1 and 2 agreed exactly; run 3 diverged:
| Run | Nodes | Simplex iterations |
|---|---|---|
| 1 | 1004 | 10931 |
| 2 | 1004 | 10931 |
| 3 | 986 | 10364 |
Zero Run 1 vs 2 assertion failures, 128 Run 1 vs 3 failures.
determinism_test.cu:217: Failure
solution1.get_objective_value() Which is: 382.30780375000012
solution3.get_objective_value() Which is: 384.26733044999986
determinism_test.cu:220: Failure
solution1.get_solution_bound() Which is: 341.0518313
solution3.get_solution_bound() Which is: 341.16572324999987
Why this looks like a real bug rather than tolerance
All three runs terminated on the work limit, not the clock:
Work limit reached. Stopping the solver...
Explored 986 nodes (10364 simplex iterations) in 3.55s.
Best objective 3.842673e+02, best bound 3.411657e+02, gap 11.22%.
work_limit exists precisely so termination does not depend on wall time. Three
runs with identical settings and seed consuming different amounts of work before
the counter trips means the divergence is upstream of termination — the search
itself took a different path — rather than a formatting or floating-point
tolerance question. The differing node and simplex-iteration counts point the
same way.
The failure is also not marginal: variable 1 differs by 2.0
(1.78e-14 vs 2.0) and variable 11 by 1.0 (1.0 vs 0), i.e. different
integer assignments, not last-bit noise.
Notes
- Reproducing needs the seed pinned; the test's use of
std::random_device
means a rerun exercises a different seed and will often pass. - Two of three runs matching suggests a race that usually resolves the same way
— consistent with 8 threads andCUOPT_MODE_DETERMINISTIC. - #1134 (
[BUG] Flaky Determinstic B&B test, closed 2026-04-24) was the same
test with a different instance (seymour1_threads16), so this class of
failure has recurred. - Related open work: #144, #882, #1058, #883, #1069.
- Ngôn ngữ chính
- Cuda
- Star
- 1.1k
- Fork
- 249
- Merge trung bình
- 1 ngày 11 giờ
- Pull request đã merge (30 ngày)
- 123
Chuẩn bị môi trường
- 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 NVIDIA/cuopt
-
[BUG] Constraint validation reports CSR offset count as the number of rowsCó thể đã có người làm @0z5a đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
ci: pr-test-summary job shows red when the GitHub API returns persistent 5xx errorsCó thể đã có người làm @0z5a đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG] Dataset downloader reports success and replaces data after a failed downloadCó thể đã có người làm @0z5a đã nhận hôm nay. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
Maintainer thường phản hồi trong vòng 1 ngày