Dry-run OS/MCU apply records the new version, hiding the still-pending update from check() and status
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 76/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- rust
- Bereich
- backend, embedded-iot, testing
Rechercherichtung
Lies crates/pod-updater/src/agent.rs, insbesondere apply() und check(), und untersuche anschließend die Dry-Run-Schreibvorgänge in install.rs sowie den Test os_and_mcu_apply_are_gated_dry_run. Verhindere die Versionsaufzeichnung im Dry-Run-Modus und aktualisiere den Test so, dass er prüft, ob ein Vorschau-Lauf das Update verfügbar lässt und weiterhin die alte Version als installiert gemeldet wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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).
- Vorherrschende Sprache
- Rust
- Sterne
- 0
- Forks
- 0
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus GoogleBot42/podd
-
documentation
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 84/100
GoogleBot42/podd#63 ·
-
documentation
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 78/100
GoogleBot42/podd#62 ·
-
documentation good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 69/100
GoogleBot42/podd#60 ·
-
documentation
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
GoogleBot42/podd#61 ·
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
GoogleBot42/podd#58 ·
Alle Issues in GoogleBot42/podd
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
cloudflare/workers-rs#1130 ·
Maintainer antworten meist innerhalb von 11 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 69/100
vfarcic/dot-agent-deck#2160 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
RustCrypto/utils#1597 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag