Fermare la carta non letto che offre la posta che è stato letto e cancellato

FixEmailService
Spegnimento
27 agosto 2026 alle ore 01:14 UTC
Autore
kamo
Impegno
7bbb9a0

Il widget di home-page unread-mail legge email metadata.search index direttamente — non deve spendere una connessione IMAP, che è l'intero ragione che esiste — e che l'indice abbia mai imparato che cartella HOLDS. È stato scritto come effetto collaterale della mail di elenco, e un elenco segnala i messaggi che sono lì; nulla in esso può dire un messaggio è andato. Quindi un messaggio che è stato letto e poi cancellato ha lasciato la sua riga dietro per sempre, congelato alle bandiere con cui è arrivato. Né l'evento è stato registrato: non il letto, perché un cambiamento di bandiera non ha mai ri-indicizzato nulla, e non l'eliminazione, perché il messaggio ha smesso di apparire in qualsiasi pagina. La fila rimasto non letto e il widget è andato a offrirlo. L'indice del reporter ha tenuto sette tali file INBOX, ognuno di loro anche presente nel cestino e contrassegnati leggere lì — posta che avevano trattato con undici a venti giorni prima, ancora sul loro cruscotto. Fisso a entrambe le estremità: * ogni percorso che si muove, cancella o ri-flag un messaggio ora dice indice nello stesso respiro — messaggio singolo, selezione batch, filtro regola, conversazione letto, conversazione stella, rapporto spam. Per una cancellare questo accade prima dell'evento scambiato mailbox, dal momento che evento è ciò che rende la home page rileggere il widget; * una pagina sincronizzata che copre provabilmente la cartella WHOLE ora scende la righe per messaggi che non ha contenuto, che cattura la posta leggere o cancellato da un telefono o un altro cliente, e cancella le righe orfano prima che tutto questo esistesse. "Probabilmente" è un accordo esatto con il numero di messaggi del server, non una breve pagina: un fornitore è libero di catturare una pagina al massimo, quindi breve significa "il fornitore si è fermato", che non è "la cartella finita". Ogni altro caso passa e si riconcilia la prossima volta. L'indice è anche il corpo di ricerca, quindi una cancellazione sbagliata qui perde posta reale da ricerca — l'argomento di sicurezza è coperto WholeFolder(), che è puro e testato dalla direzione di "può dire sì quando non deve". Il riconciliarsi corre prima che il checkpoint sia scritto, ed è l'unica chiamata in MailIndexMaintenance ha permesso di lanciare. Un checkpoint afferma il indice descrive correttamente la cartella in quel modseq; scriverne uno sopra un indice ancora in possesso di righe per posta cancellata permetterebbe l'indice-backed lista dei messaggi servono quelle righe come posta. Una riconciliazione fallita non richiede checkpoint, il che significa resync — la direzione in cui tutto il percorso fallisce. Le caselle di posta condivise sono deliberatamente intatte: le righe di indice sono contrassegnate da membro e UID, gli UID sono unici all'interno di una casella di posta piuttosto che attraverso loro, e ri-flagging UID 42 di una casella di posta condivisa contro un membro sarebbe ha colpito qualunque sia la loro casella di posta in possesso a 42.

Tutte le modifiche

Come quello che vedi la spedizione?

Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.

Inizia gratis per sempreVisualizza il prezzo