fix(crop): een mislukte rotatie is niet langer spoorloos #1774
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!1774
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/rotatie-windows-diagnose"
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?
Waarom
De spiegel-CI op main staat na #1762/#1763 nog op twee rode tests, allebei in
image_crop_dialog_test.dart(van de zeventien:Gate (Linux)groen,Docs linksgroen, vijftien Windows-toetsen groen, deze twee niet). Het bestand op schijf blijft onveranderd, dus de rotatie landt niet.Mijn vorige poging schoot mis. De ontbrekende Windows-terugval in
writeBytesAtomicSyncwas een echte fout — de bibliotheekdoc beloofde hem — maar hij was niet de oorzaak hiervan.Het eigenlijke gebrek is dat ik het niet kán zien.
_writeRotatedBytesheeft vier uitgangen die niets wegschrijven: bytes nooit geladen, niet te decoderen, pad buiten de projectmap, of de schrijfbeurt gooit. Alle vier waren stil. De schrijffout werd bewust ingeslikt, en met reden — een volle schijf of een alleen-lezen map mag de bijsnijdkeuze niet blokkeren. MaarlogWarningschrijft naar de VM-servicestroom, niet naar de testuitvoer, dus in CI zie je alleenExpected: [0,0,255] Actual: [255,0,0]. De enige route naar de oorzaak was gokken en een uur op de spiegel wachten. Dat heb ik één keer gedaan; niet nog eens.Wat er verandert
lastRotationWriteFailure(de fout, of een korte reden). Alleen de fout of die reden — nooit een pad of bestandsinhoud.logWarning. In de app was dit namelijk hetzelfde gat: een gebruiker op Windows draait een afbeelding, ziet de preview draaien, en er gebeurt niets. Geen melding, geen spoor.Wat dit níet is
Dit repareert de rotatie niet. Het maakt de volgende spiegel-run bruikbaar. Ik heb bewust geen tweede gok ingebouwd (mijn beste hypothese was een openstaande bestandshandle van de beeldcache — plausibel gezien de errno-32-fouten in twee andere Windows-toetsen, maar niet meer dan dat). Zodra Windows de reden noemt, komt de reparatie mét een toets die op de juiste plek rood staat.
Toetsing
make checkgroen (exit 0).writeBytesAtomicSynclokaal te laten gooien: de toets meldt danFileSystemException: nagebootste Windows-foutin plaats van "verwacht blauw, kreeg rood".Bewaker
Overgeslagen, expliciet: geen formaat, opslag, afhankelijkheid of publieke belofte. Wel raakt het waarneembaarheid van een stille fout, en dat gaat de goede kant op.