[中] 视频提取的临时目录崩溃后残留,缓存清理不会处理

Aperta
#55 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
Mezza giornata
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
swift
Ambito
desktop

Direzione di ricerca

Start by reading Sources/BirdLockCore/IO/CachePolicy.swift:42-52, where groups builds the regexes that match 32- and 24-hex cache directory names, and check how totalSize enumerates entries. Then read Sources/BirdLockCore/IO/VideoImporter.swift:90 and :144 to see how .extract-<UUID> and .replaced-<UUID> directories are created and where defer cleans them up. Done means orphaned .extract-*/.replaced-* directories older than a chosen age are removed on the next import (or included in the cleanable groups) and no longer counted in totalSize; reproduce by force-quitting during an import.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

位置:Sources/BirdLockCore/IO/VideoImporter.swift:90、:144;Sources/BirdLockCore/IO/CachePolicy.swift:42-52

现象:提取时创建 base/.extract-<UUID>,替换旧缓存时创建 .replaced-<UUID>。正常异常路径靠 defer 删除,但崩溃或强退会留下目录;CachePolicy.groups 只匹配 ^[a-f0-9]{32}$ 与 ^[a-f0-9]{24}$,不会清理这些目录,而 totalSize 会把它们计入缓存占用。

复现:导入视频时强制退出应用,再查看缓存的占用与清理结果。

建议:VideoImporter.extract 开始时清理超过一定时间的 .extract-*/.replaced-*,或把这类目录纳入 CachePolicy 的可清理组。

来源:2026-11-15 全仓只读审计,PR #7 未包含此项。 未在实机复现(静态审计)。

Lingua principale
Swift
Stelle
2
Fork
2
Merge medio
1h 11m
PR unite (30g)
2

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di cyandee/BirdLock

Tutte le issue di cyandee/BirdLock

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.