The new SeparateBodyFileCache design makes updates/reads non-atomic
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
- #435 von @princ0301 — ohne Merge geschlossen
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 28/100
Rechercherichtung
Beginne mit der Untersuchung des im Issue beschriebenen Designs von SeparateBodyFileCache und der zugehörigen Diskussion in #325. Lege fest, wie das Lesen und Schreiben von Metadaten und Body sich verhalten soll, wenn ein Prozess abstürzt oder mehrere Prozesse ein Cache-Verzeichnis gemeinsam nutzen; als erledigt gilt die Aufgabe, wenn unvollständige Einträge nicht als gültige Cache-Einträge erkannt werden und beide Vorgänge atomar sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
The problem
Scenario 1
Program crashes after writing metadata but before writing body. Now the cache thinks the body is empty.
Scenario 2
Multiple processes using the same cache directory. Process A writes metadata, but not yet body. Process B gets metadata, then gets body, and now it thinks the body is empty.
Workarounds
For pip I added logic that basically pretends a cache entry is missing if it doesn't have both body and metadata files.
Solutions
Probably need both a new API that involves writing and reading both at once, and an implementation that makes sure that's atomic. See also the somewhat related #325.
- Vorherrschende Sprache
- Python
- Sterne
- 505
- Forks
- 159
- Ø Merge
- 7 Std. 55 Min.
- Gemergte PRs (30 T.)
- 7
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine 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 psf/cachecontrol
-
Cache Deserialization (part two) -- warning message incorrect?Evtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
psf/cachecontrol#209 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Race condition in send()Evtl. vergeben @JulienPalard hat das vor 172 Tagen übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
psf/cachecontrol#424 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
HTTP 302 Found responses with Cache Headers not being cachedEvtl. vergeben @cburroughs hat das vor 305 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 42/100
psf/cachecontrol#384 · 18 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Head request is not cached even with cacheable_methods=("GET", HEAD") without a previous GETEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
psf/cachecontrol#337 · 6 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Investigate failure to load caches above `2^32 - 1` bytesEvtl. wieder frei @woodruffw hat das vor 877 Tagen übernommen, und es ist kein Pull Request offen. Offen
psf/cachecontrol#336 · 4 Kommentare · 1 Reaktion · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in psf/cachecontrol
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
hkust-nlp/Toolathlon#101 ·
-
enhancement good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
SkyTruth/cerulean-cloud#219 ·
-
area:security priority:low size:small
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
RonaldHensbergen/composable-data-stack#1217 ·
Maintainer antworten meist innerhalb von 1 Tag
-
good first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
blixvip/BlendClone#27 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100