Dry-run OS/MCU apply records the new version, hiding the still-pending update from check() and status
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 76/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Calme
- Stack technique
- rust
- Domaine
- backend, embedded-iot, testing
Piste de recherche
Lis crates/pod-updater/src/agent.rs, en particulier apply() et check(), puis examine les écritures en dry-run dans install.rs et le test os_and_mcu_apply_are_gated_dry_run. Conditionne l’enregistrement des versions au mode dry-run et mets à jour le test pour vérifier qu’un aperçu laisse la mise à jour disponible et que l’ancienne version reste signalée comme installée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
agent.rs apply() (crates/pod-updater/src/agent.rs:273-297) calls layout.record_version(kind, &component.version) after the OS/MCU writer returns Ok — including under dry_run, where nothing was actually flashed (DryOsSlotWriter/DryMcuFlasher just log and return Ok, install.rs:170-233). check() then filters out any component whose installed_version equals the manifest version (agent.rs:167-170), so after a single dry-run 'apply' the OS/MCU update silently disappears from available and current_versions reports the new version as installed even though the device still runs the old firmware. An operator doing a dry-run preview would afterward see no pending update. record_version should be gated on !dry_run (the os_and_mcu_apply_are_gated_dry_run test currently asserts the wrong behaviour).
Filed from a repo-wide code audit (working tree at bcad746).
- Langage dominant
- Rust
- Étoiles
- 0
- Forks
- 0
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de GoogleBot42/podd
-
documentation
Difficulté 1/5 Moins d'une heure Accessibilité débutants 84/100
GoogleBot42/podd#63 ·
-
documentation
Difficulté 1/5 1-3 heures Accessibilité débutants 78/100
GoogleBot42/podd#62 ·
-
documentation good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 69/100
GoogleBot42/podd#60 ·
-
documentation
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
GoogleBot42/podd#61 ·
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
GoogleBot42/podd#58 ·
Toutes les issues de GoogleBot42/podd
Issues similaires
-
Shell `yoyo <verb> <sub>` missing its required argument prints usage and exits 0: `config get`Ouverteagent-self
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
yologdev/yoyo-evolve#1154 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
eliasstravik/herdr-projects#789 · 1 commentaire ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Alex-Sebastian-Ene/mind-over-chicken#195 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours