[Robuustheid][P2] Afsluiten kan blijven hangen of stil mislukken (onbegrensde best-effort-stappen) #2631
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#2631
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?
Symptoom
Op het kruisje klikken doet soms niets, of het afsluiten duurt lang. De gebruiker sluit de app dan via Taakbeheer — wat weer het risico op een beschadigd instellingenbestand met zich meebrengt (#2628).
Oorzaak
Het native venster onderschept het sluiten (
willClose-hook,lib/platform/native_window_io.dart:21-37) en laat de shell beslissen (AppShell._onWillClose/_handleClose,lib/widgets/app_shell.dart:475-508). Twee zwakke plekken:_destroy(regel 510-535) wacht onbegrensd op best-effort-stappen vóórquitApp():closeLessonSessionper OciServe-les — een netwerkaanroep;stopRecordingBeforeQuit(lib/widgets/shell/recording_lifecycle.dart:64-68) — zonder time-out en zondercatch;leaveMeetingBeforeQuitheeft een time-out (5 s) en vangt fouten (meeting_lifecycle.dart:16-27).Gooit een stap, dan breekt
_handleCloseaf, wordt_closeInProgressteruggezet, en blijft het venster zonder melding open.Voorgestelde oplossing
_destroyhetzelfde behandelen alsleaveMeetingBeforeQuit:timeout+catch+ logregel, enquitApp()altijd bereiken. Netwerkstappen hooguit 2-3 s.Toets
Widgettest:
stopAllgooit →quitAppwordt toch aangeroepen;closeLessonSessionhangt → na de time-out alsnogquitApp.Onderdeel van de prestatie- en stabiliteitsinspectie van 28-10-2026 (EPIC #2637).