Consider atomic JSON writes
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 70/100
Rechercherichtung
Finde den Code, der Thing-Einstellungen schreibt, und lies nach, wie er die JSON-Datei derzeit serialisiert und speichert. Prüfe dann die vorhandenen Tests des Projekts zur Speicherung von Einstellungen und ergänze Tests für unterbrochene oder atomare Schreibvorgänge. Als erledigt gilt die Aufgabe, wenn eine Einstellungsaktualisierung eine temporäre Datei und deren Ersetzung verwendet, sodass die Einstellungsdatei gültig bleibt, falls der Schreibvorgang unterbrochen wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
If LabThings is interrupted while writing Thing settings, the file could get corrupted.
To Reproduce
Pull the power during a settings update.
Expected behaviour
It would be nice if the file didn't get corrupted.
Additional context
This should be easy enough to avoid by writing to a temp file, then swapping the temp file with the actual settings file. That reduces to nearly-zero the time during which the file could be broken.
- Vorherrschende Sprache
- Python
- Sterne
- 10
- Forks
- 3
- Ø Merge
- 5 T. 17 Std.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
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 labthings/labthings-fastapi
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
labthings/labthings-fastapi#405 · 1 Kommentar ·
-
Use `Exception.add_note`Offendrop-python-version
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
labthings/labthings-fastapi#354 · 2 Kommentare ·
-
Log propagation issueOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
labthings/labthings-fastapi#312 · 1 Kommentar ·
-
enhancement
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 65/100
labthings/labthings-fastapi#407 ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
labthings/labthings-fastapi#404 · 2 Kommentare ·
Alle Issues in labthings/labthings-fastapi
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Graphify-Labs/graphify#4860 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
:bug: Bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
scikit-image/scikit-image#8377 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Ingredient import validation accepts negative nutrient values and NaNEvtl. vergeben @LukeSekai hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
wger-project/wger#2564 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
apache/ponymail-foal#351 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 4 Tagen