Flaky: Linux owlet sometimes fails on power-loss-truncated corpus hoots (owlet-failed vs incomplete-read)

Aperta
#4 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend, testing

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

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_quarantines
  • test_truncated_hoot_flagged_short_coverage
  • tests/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

Lingua principale
Python
Stelle
0
Fork
1
Merge medio
18h 37m
PR unite (30g)
15

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di IgniteRobotics/flashpoint

Tutte le issue di IgniteRobotics/flashpoint

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.