• fix(mail): den samme mail blev en opgave igen og igen
    Release / Build and publish image (push) Failing after 9m58s

    kw released this 2026-08-20 05:04:40 +00:00 | 276 commits to main since this release

    Rapporteret fra drift med et skærmbillede af den samme mail seks gange i træk.

    IMAP: flaget kommer af, når mailen er blevet en opgave. Markøren var et uid —
    husk det højeste, begynd over det næste gang — og den holdt kun, hvis uids var,
    hvad serveren sagde. Den brød på et fetch-svar uden uid, på en UIDVALIDITY, der
    skiftede under en genopbygget postkasse, og på to postkasse-rækker, der pegede
    samme sted og hver især førte deres eget regnskab. Alle tre gav det samme
    symptom.

    Så regnskabet flytter derhen, hvor spørgsmålet bliver stillet. "Flaget" betyder
    "lav det her om til en opgave"; når den er en opgave, har flaget gjort sit
    arbejde og er ikke sandt længere. Så er der ingenting at huske, og dermed
    ingenting, der kan komme ud af trit — en anden synkronisering, en anden
    postkasse-række eller en database gendannet fra en kopi finder alle det samme
    svar, fordi svaret ligger i postkassen.

    Flaget tages af efter opgaven er skrevet. Et flag fjernet fra en mail, hvis
    opgave aldrig blev gemt, er en mail, ingen ser igen.

    Gmail havde den samme fejl af en anden grund. Listen over allerede behandlede
    beskeder blev bygget om ved hver kørsel af kun de id'er, Gmail svarede med den
    gang
    — for at den ikke skulle vokse uendeligt. Men forespørgslen er begrænset,
    så på en konto med mere stjernemarkeret post, end der er plads til i ét svar,
    glemte hver kørsel det, den forrige havde husket. De kom tilbage som ubehandlede
    og blev opgaver igen. Det var ikke en grænse, det var en måde at glemme på.
    Listen har nu et loft på antal i stedet, nyeste først.

    Gmail kan ikke få taget stjernen af: scopet er gmail.readonly, med vilje, fordi
    det er dét, der gør samtykkeskærmen til noget, et menneske kan sige ja til. Derfor
    skal regnskabet blive på vores side dér — men det skal så være et regnskab, der
    kan holde.

    Prøven kører hele vejen mod en rigtig IMAP-server: find de flagede, tag flaget af,
    og spørg så forfra med markøren sat til nul — altså det værst tænkelige tilfælde,
    hvor alt, vi selv havde husket, er væk. Der kommer ingenting tilbage.

    Co-Authored-By: Claude Opus 5 [email protected]

    Downloads