canonical / canonical/layer-basic
Multiple calls to unitdata.kv().flush()
- Vorherrschende Sprache
- Python
- Sterne
- 10
- Forks
- 42
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
charms.layer.basic.clear_config_states() calls unitdata.kv().flush(), which will be the second time the storage is flushed in the hook. In the perverse case where a failure happens between these two calls, we can end up with invalid state.
I think this is a use case for an actual `@cleanup` phase in charms.reactive, per https://github.com/juju-solutions/charms.reactive/pull/20
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginnen Sie mit charms.layer.basic.clear_config_states() und verfolgen Sie dessen Aufruf von unitdata.kv().flush(); lesen Sie anschließend den referenzierten charms.reactive-Vorschlag zur cleanup-phase. Erledigt ist die Aufgabe, wenn der State-Flush-Lebenszyklus des Hooks bei einem Fehler zwischen Flushes keinen ungültigen State mehr hinterlässt; der Payload nennt keinen auszuführenden Test und keine auszuführende Datei.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devops
- Issue-Typ
- Refactoring
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 30/100