8000 test(fuzz): retry an interrupted crash copy and report why a copy failed (#564) by adityamukho · Pull Request #567 · project-minigraf/minigraf · GitHub
[go: up one dir, main page]

Skip to content

test(fuzz): retry an interrupted crash copy and report why a copy failed (#564) - #567

Merged
adityamukho merged 1 commit into
v3from
fix/564-ops-sequence-copy
Oct 13, 2026
Merged

adityamukho merged 1 commit into
v3from
fix/564-ops-sequence-copy

Conversation

@adityamukho
Copy link
Copy Markdown
Collaborator

Nightly ops_sequence on v3 (run 38318336648) failed with step 3: copy failed after ~83k executions. The saved input is one transact followed by eight Crash steps. It passes on its own and in 5,000 repeats locally, and there was no fd or temp-dir leak while fuzzing. So the failure came from the environment, and the message threw away the io::Error.

libFuzzer's -timeout alarm (setitimer(ITIMER_REAL) every 31 s, handler installed with SA_SIGINFO and no SA_RESTART, see FuzzerUtilPosix.cpp) can interrupt syscalls. std::fs::copy doesn't retry EINTR in every path.

  • crash_copy (shared by model_based_test and the fuzz target) retries ErrorKind::Interrupted. Any other error now names the file (database file or WAL) and the error kind, so a repeat can be diagnosed.
  • Regression tests in tests/model_based_test.rs: the Nightly fuzz failure (v3) #564 sequence (repeated_crash_copies_match_model) and the error message (crash_copy_names_the_failing_file).
  • Corpus seed fuzz/corpus/ops_sequence/seed_564_repeated_crash_copies.bin.

Test-harness only; no library change. #564 can be closed once the next v3 nightly is clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_016QAt9R1aSPQG7rV5ouFDMU

…led (#564)

The nightly ops_sequence run failed with 'step 3: copy failed' after 83k
executions; the input passes alone and in 5000 repeats. libFuzzer's
-timeout alarm (ITIMER_REAL, no SA_RESTART) can interrupt syscalls, and
the message dropped the io::Error. crash_copy now retries Interrupted and
names the file and error kind. Adds the input as a corpus seed and as a
model-based test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016QAt9R1aSPQG7rV5ouFDMU
@adityamukho
adityamukho merged commit 1d9e0c1 into v3 Oct 13, 2026
24 checks passed
@codecov
codecov Bot commented Oct 13, 2026
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@adityamukho
adityamukho deleted the fix/564-ops-sequence-copy branch October 13, 2026 05:20
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.

1 participant

0