podd-slot-install.sh flips the boot pointer without verifying the written slot actually contains a kernel

Aperta Adatta ai principianti
#51 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
70/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
linux, shell
Ambito
devops

Direzione di ricerca

Inizia da install/podd-slot-install.sh, intorno alle righe 160–192, e segui come viene impostato $MNT e come viene scelto il percorso del DTB. Dopo l’estrazione, verifica che /boot/Image.gz e il DTB previsto esistano nello slot montato prima che cambi il puntatore di avvio. Il lavoro è concluso quando la mancanza del kernel o del DTB interrompe l’installazione prima che il puntatore cambi.

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

Descrizione

bug

install/podd-slot-install.sh mkfs's the inactive slot, tar -xzf the rootfs into it (line 161), then flips mmcpart and reboots (lines 170-192) — but it never checks that the extracted tree actually contains /boot/Image.gz + the DTB, even though the log line at 160 says it 'must include' them. A truncated, wrong, or kernel-less tarball would produce a non-booting slot, and the only safety net is the assumed stock U-Boot bootcount/altbootcmd auto-revert (which the script arms via ustate=1 but never confirms is present in this unit's env). If that rollback machinery is absent or differs, the Pod is left booting a dead slot and needs serial-U-Boot recovery. Add a post-extract sanity check (stat /boot/Image.gz and the DTB in $MNT) before flipping the pointer.


Filed from a repo-wide code audit (working tree at bcad746).

Lingua principale
Rust
Stelle
0
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

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 GoogleBot42/podd

Tutte le issue di GoogleBot42/podd

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.