Flaky: Linux owlet sometimes fails on power-loss-truncated corpus hoots (owlet-failed vs incomplete-read)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
Research direction
Start with readers/hoot.py::_run and the named corpus and backup tests, then inspect how quarantine reasons and owlet output are recorded. Run the Linux owlet repeatedly on the two named truncated hoot files and compare exit status, stderr, and wpilog output. Done when the intermittent failure is characterized and the tests verify a reliable handling strategy for it.
Written by the indexing model from the issue text.
Description
Seen on PR IgniteRobotics/flashpoint-private#15, CI run 37319717473, corpus job attempt 1. The same commit passed on rerun, and passed on two earlier runs.
The GACMP_E10 truncated hoots (GACMP_E10_rio_2026-04-11_19-26-19.hoot, GACMP_E10_6E94…_2026-04-11_19-29-15.hoot) were quarantined as owlet-failed instead of being ingested with incomplete-read. This failed:
tests/test_ingest_corpus.py::test_expected_successes_and_quarantinestest_truncated_hoot_flagged_short_coveragetests/acquire/test_backup_corpus.py::test_restore_drill_reproduces_the_ledger_and_gold. In this one the original lake converted the hoot and the rebuild didn't, all within the same run.
readers/hoot.py::_run treats a non-zero owlet exit as owlet-failed unless the incomplete-read marker appears in stdout or stderr. The Linux owlet appears to be nondeterministic on truncated hoots: it sometimes exits non-zero without the marker. The macOS owlet exits 0 on this file in 20 of 20 runs, so this can't be reproduced locally. The owlet stderr detail isn't in the CI log.
Next steps:
- Log the owlet exit code and the last stderr line in the quarantine reason detail.
- Loop the Linux owlet on these files to characterise the failure.
- Consider a single retry, or accepting a non-zero exit when a non-empty wpilog was written.
🤖 Generated with Claude Code
- Dominant language
- Python
- Stars
- 0
- Forks
- 1
- Avg merge
- 18h 37m
- Merged PRs (30d)
- 15
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from IgniteRobotics/flashpoint
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
IgniteRobotics/flashpoint#45 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
IgniteRobotics/flashpoint#44 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
IgniteRobotics/flashpoint#43 ·
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 1/5 Under an hour Newbie friendliness 85/100
IgniteRobotics/flashpoint#12 ·
Maintainers usually reply within 1 day
-
tools/update-owlet-manifest.py ignores --help and starts downloadingMay be free again @yoveneim claimed this 11 days ago, and no pull request is open. Openbug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
IgniteRobotics/flashpoint#11 · 1 comment ·
Maintainers usually reply within 1 day
All issues in IgniteRobotics/flashpoint
Similar issues
-
bump patch
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
autowarefoundation/autoware_carla_scenario#1321 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 78/100
QuantConnect/Documentation#2838 ·
Maintainers usually reply within 1 day
-
get_all_subclasses must deduplicate by class identityPossibly taken @Gambit-Checkmate claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 15 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
awslabs/route53-dynamic-dns-with-lambda#67 · 1 comment ·