DB: roll back failed transactions and lower the diff size cap
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- sqlite, typescript
Direzione di ricerca
Inizia in src/lib/server/db.ts nei punti deletePostRows, removeFromEditing e recordPublished, oltre che nel punto esistente di ROLLBACK, e verifica come ciascuno racchiude BEGIN e COMMIT. Aggiungi un helper transaction(fn) che esegua il rollback e rilanci l’errore, quindi usalo in quei punti. Separatamente, riduci maxDiffLines in src/lib/segment-diff.ts da 4000 a 1500. Il lavoro è completato quando src/lib/server/db.check.ts mostra che una scrittura fallita a metà transazione non lascia righe modificate e che la scrittura successiva riesce, e src/lib/segment-diff.check.ts mostra che un input troppo grande restituisce null.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Context
Three functions in src/lib/server/db.ts open a transaction with BEGIN and COMMIT but no rollback when the body throws: deletePostRows, removeFromEditing and recordPublished. An exception leaves the connection inside an open transaction.
Scope
- One helper
transaction(fn)that runsBEGIN, callsfn, thenCOMMIT, andROLLBACKs and rethrows on error. Use it in all three places (and the existingROLLBACKsite). - Also lower
maxDiffLinesinsrc/lib/segment-diff.tsfrom 4000 to 1500: the LCS table at 4000 lines allocates about 64 MB.
Acceptance criteria
- A check in
src/lib/server/db.check.tsforces an error mid-transaction and asserts that no rows changed and the next write succeeds. - A check in
src/lib/segment-diff.check.tsasserts the new cap returnsnullfor an oversized input.
Estimate: about 2 hours.
- Lingua principale
- HTML
- Stelle
- 0
- Fork
- 0
- Merge medio
- 1m
- PR unite (30g)
- 2
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la 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 mrgnw/cfcms
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
G-nn-r/lg_heatpump#52 ·
-
area: core bug priority: high
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
griffinwork40/agent-afk#4872 ·
I maintainer di solito rispondono entro 1 giorno
-
fleet size/m
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
sipyourdrink-ltd/bernstein#7517 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
BUG-MERGE-TO-HDR-RESULT-NAMEForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
storytold/photocraft#14025 ·
I maintainer di solito rispondono entro 1 giorno