A staging folder that fails to delete is reused by the next update
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 75/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, node.js
Direzione di ricerca
Start with packages/builder-server/src/services/themeUpdateService.js, especially recoverInterruptedUpdate and the prepare failure, language-folder refusal, and post-swap cleanup paths around the referenced lines. Trace how the staging folder is removed and prepared, then inspect the relevant tests and add one that makes stage removal fail. Done means a run never prepares into a stage it did not create, and cleanup failure on the refusal path is reported.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
If a theme update can't delete its temporary folder, the next update can pick up stale files from it.
Every removal of .theme-update-stage/ swallows its error (themeUpdateService.js ~263 in recoverInterruptedUpdate, ~436/~442 in the prepare failure and the language-folder refusal, ~491/~502 after the swap). If one fails, the next run's ensureDir reuses the folder and fs.copy merges into it, so leftover staged files (an old collection folder, a stale asset) can be swapped into the project or cause a false refusal; the refusal also returns its 409 as if the stage were gone. Pre-existing pattern; found by reading the code, not reproduced.
Suggested: at the start of a run, remove the stage without swallowing the error and refuse with the usual "could not be prepared" message if it is still there; on the refusal path, report a cleanup failure instead of the clean 409.
Done when: A run never prepares into a stage it did not create, with a test that makes the stage removal fail.
Start: themeUpdateService.js. Source: 2026-10-18 Codex review of 29289f67..6344ab5c.
- Lingua principale
- JavaScript
- Stelle
- 162
- Fork
- 6
- Merge medio
- 12h 55m
- PR unite (30g)
- 2
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di tsiger/widgetizer
-
question
Difficoltà 1/5 1-3 ore Idoneità per principianti 82/100
tsiger/widgetizer#194 ·
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
tsiger/widgetizer#181 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
tsiger/widgetizer#175 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
tsiger/widgetizer#174 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
tsiger/widgetizer#173 ·
Tutte le issue di tsiger/widgetizer
Issue simili
-
Link Checker ReportApertaautomated issue report
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
microsoft/playwright#43640 ·
I maintainer di solito rispondono entro 1 giorno
-
✏️ Editing - Tags
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
openfoodfacts/openfoodfacts-server#15127 ·
I maintainer di solito rispondono entro 1 giorno
-
Add a dark mode toggleApertaenhancement good first issue hacktoberfest help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Andbal23/dynamic-music-pill#195 ·
I maintainer di solito rispondono entro 1 giorno