Skip to content

ci(miri): stop the 6-hour timeout on every push - #410

Merged
AdaWorldAPI merged 1 commit into
masterfrom
claude/gallant-wright-wqeht0
Nov 5, 2026
Merged

AdaWorldAPI merged 1 commit into
masterfrom
claude/gallant-wright-wqeht0

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Why

On master, the miri job was cancelled at GitHub's 6-hour limit on every push, so master's CI was red and gave no UB signal at all. In the last run, four tests were still running after 2 to 3.4 hours each:

  • u9_abacus::all_511_by_511_pairs_are_exact
  • pof_antennas::a2_all_511_by_511_pairs_are_exact
  • pof_antennas::a2_mixed_blocks_and_worst_case_runs_are_exact
  • spatial_hash::tests::test_knn_k_larger_than_count

What

  • SpatialHash::query_knn stops once every entry in the grid has been visited. A query for more neighbours than the grid holds used to walk all 129³ cells up to max_ring. Results are unchanged, because the outer rings hold nothing.
    • Under miri the five k-NN tests now take 40 s. With the exit removed, test_knn_k_larger_than_count is still running at a 5-minute limit; on CI it had run for over 3.4 h.
    • New test: a point 10 rings out is still found when k is larger than the count, and an empty grid answers empty.
  • Correct but hours long under interpretation:
    • The 6 exhaustive 511×511 kernel sweeps and the 5 flush-bound worst-case runs get #[cfg_attr(miri, ignore = "...")], with the reason written in.
    • The 300-block cases and the flush part of a2_mixed are left out under miri only.
    • The native test jobs still run all of them on every PR. This follows tests/oper.rs, which already shrinks its sizes under miri.
  • Safety net: a nextest miri profile stops any single test after 20 minutes, so a slow test fails by name instead of using up the job's time limit. The job also gets timeout-minutes: 120.

Checked

  • Native: spatial_hash 19 pass; u9_abacus 43, pof_antennas 20, u9_head_to_head 5 pass, none ignored.
  • cargo fmt --check and clippy -D warnings are clean.
  • The miri job runs only on push to master, so its first real run is after merge. A local miri run of the three integration files is in progress; I'll add the timings here when it finishes.

Generated by Claude Code

The miri job on master was cancelled at GitHub's 6-hour limit on every
push (last run: four tests still running after 2 to 3.4 hours each), so
master's CI was red and gave no UB signal at all.

- SpatialHash::query_knn: stop once every entry in the grid has been
  visited. A query for more neighbours than the grid holds walked all
  129^3 cells up to max_ring; results are unchanged because outer rings
  hold nothing. Under miri the five k-NN tests now take 40 s;
  test_knn_k_larger_than_count alone was still running after 3.4 h on CI,
  and with the exit removed it is still running at a 5-minute limit
  locally. New test: a far point (10 rings out) is still found when
  k > count, and an empty grid answers empty.
- Exhaustive 511 x 511 kernel sweeps (6 tests) and flush-bound worst-case
  runs (5 tests) carry #[cfg_attr(miri, ignore = "...")] with the reason;
  the 300-block cases and the flush part of a2_mixed are left out under
  miri only. The native test jobs still run all of them on every PR.
- Safety net: nextest profile `miri` stops any single test after 20
  minutes, so a slow test fails by name; the job has timeout-minutes: 120.

Native: spatial_hash 19 pass; u9_abacus 43, pof_antennas 20,
u9_head_to_head 5 pass, none ignored. fmt and clippy clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMQJzQD5KvNm8BtbsWG
@coderabbitai

coderabbitai Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 7e6fc066-6cb5-4838-b969-3f45d3aad00e
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review November 5, 2026 23:09
@AdaWorldAPI
AdaWorldAPI merged commit b8250a7 into master Nov 5, 2026
21 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-05T23:10:03.519464Z d74ac35 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

AdaWorldAPI pushed a commit that referenced this pull request Nov 6, 2026
Follow-up to #410. A local miri run of the three integration files after
#410 showed u9_head_to_head still over 40 minutes:
worst_case_runs_cross_the_flush_bounds_exactly runs 3 * B_FLUSH_BLOCKS + 5
all-255 blocks, the same shape as the flush-bound runs #410 already skips
under miri (its name did not match the earlier search). It would also hit
the new 20-minute per-test limit on CI. It now carries the same
#[cfg_attr(miri, ignore = "...")]; the native test jobs still run it.

Under miri: u9_head_to_head 3 passed, 2 ignored, 10 s wall
(was > 2400 s); pof_antennas 42 passed, 1 ignored, 865 s; u9_abacus 11
passed, 9 ignored, 232 s (wall times include compiling). A sweep of
tests/, src/ and examples/ for `*_FLUSH_BLOCKS` runs finds no other
unskipped one. Native: u9_head_to_head 5 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMQJzQD5KvNm8BtbsWG
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants