Modeldownload blijft eeuwig bezig bij een TLS-fout en blokkeert elke volgende download #2756
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2756
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Gevonden in de kritische review van 03-11-2026 (stabiliteit).
Wat er misgaat
Faalt de download van een whisper-model op TLS — een bedrijfsproxy die TLS onderschept, een verlopen certificaat, een captive portal — dan blijft de modelkaart voorgoed op "bezig". Elke volgende download, ook van een ander model, is daarna geweigerd tot de app opnieuw start. Het
.part-bestand blijft liggen.Oorzaak
lib/services/transcription/model_download_io.dart:_rundraaitunawaited(r. 62) en vangt alleenModelDownloadException,SocketException,HttpException,TimeoutExceptionenFileSystemException(r. 162–190).HandshakeExceptionenCertificateExceptionerven vanTlsException, en die implementeertIOException, nietSocketException. Zo'n fout loopt_runuit als onafgehandelde asynchrone fout, enhandle._failwordt nooit aangeroepen.TranscriptionModelManager.download(lib/state/transcription_model_provider.dartr. 256) wacht ophandle.done, die dus nooit voltooit. Daardoor:downloading: truevoorgoed in de status;_active.remove(model.id)(r. 286) nooit bereikt, en weigert de wachter bovenaandownloadelke nieuwe poging (_active.isNotEmpty).Hetzelfde geldt voor elke andere onverwachte worp in
_run(bijvoorbeeld eenArgumentErroruitUri.resolveop een kapotteLocation).Voorstel
SocketException/HttpExceptionvervangen doorIOException(naFileSystemException, dat ook eenIOExceptionis), zodat TLS als netwerkfout telt.on Object-vangst, zodatdonealtijd afloopt en.partaltijd opgeruimd wordt.Wat overeind moet blijven
Test
Een downloadtoets met een
ModelFetchdie eenHandshakeExceptiongooit:donefaalt metnetworkFaileden.partis weg. Op de huidige code verloopt de toets op een time-out.Opgepakt (kritische review 03-11-2026). Tak: fix/model-download-tls-2756. Verwachte reikwijdte: lib/services/transcription/model_download_io.dart, test/transcription/model_download_test.dart.