Avalikustatud on uus versioon mitmeplatvormilisest kõrge jõudlusega POP3/IMAP4 serverist Dovecot 2.3.21, mis toetab POP3 ja IMAP4rev1 protokolle koos populaarsete laiendustega nagu SORT, THREAD ja IDLE, samuti autentimise ja krüptimise mehhanisme (SASL, TLS, SCRAM). Dovecot säilitab täieliku ühilduvuse klassikaliste mbox ja Maildir vormingutega, kasutades väliseid indekseid jõudluse parandamiseks. Funktsionaalsuse laiendamiseks saavad kasutada pluginate abil (näiteks on pluginate kaudu rakendatud kvoodid ja ACL). Projekti kood on litsentseeritud LGPL ja MIT alusel.
Peamised muudatused:
- lib-oauth2: Lubatud on JWT-tokenite kontrollimine, kus puudub väli „typ”. Väli „typ” pole teatud võtme emitentide poolt ruumi säästmiseks kasutusel, sealhulgas kubernetes. Nüüd on „typ” puudumine lubatud, kuid kui see on olemas, peab selle väärtus olema „jwt”.
- auth: Passdb ja userdb poolt saadud „Auth” vastus võib sisaldada väärtust „event_<name>=value”, mis lisatakse sisselogimise sündmuse ja vastava e-posti kasutaja sündmuse juurde.
- lib-master: Seadistab protsessi pealkirja erinevatel initsialiseerimise etappidel, et selgitada, mida protsess ootab.
- lib-storage: mail_temp_scan_interval'i vahemikku suurendatakse nüüd 0…30% sõltuvalt kasutajanime hash'ist, et vähendada koormuse piike.
- lib-storage: Ajutise faili skaneerimine on viidud postkasti avamise hetkest selle sulgemise hetkeni, et vähendada kasutajate tajutavat viivitust.
- stats: Kui metoodikas on välja toodud väljad, eksporditakse kõik need väljad Prometheusele ekspositsooni formaadis loenduritega.
- «*-login»: Protsessid võisid SSL-ühenduse ebamugava katkestamise korral kokku kukkuda. — acl: Plugina laadimise ajal arvutati lipud \HasChildren ja \HasNoChildren valesti postkastide jaoks, mille nimed sisaldasid '*' ja '%'.
- auth: PostgreSQL andmebaasi ühendamise ebaõnnestumisel käivitamisel ilmnes tõrge.
- auth: Vale parooliga (nt tundmatu skeemiga) sisselogimise korral andis passdb 'password mismatch' tõkke 'sisemine viga' asemel.
- auth: XOAUTH2 ja OAUTHBEARER mehhanismid ei andnud protokolli-spetsiifilist vigade sõnumit, kui vigu esines. See takistas eriti OIDC tuvastamist.
- dbox: Kui last_temp_file_scan päis ei olnud seatud (eriti pärast dsync migrationit), käivitati järgmise postkasti avamisel alati ajutiste failide skaneerimine. See võis põhjustada koormuse suurenemist pärast migratsioone. Parandatud postkasti katalooge atime kasutamisega päise puudumisel, mis tavaliselt edasilükkab skaneerimise aega.
- dict-redis: Tehingute tagasivõtmisel toimus rike.
- dsync: Kui eemal asuva postkasti kustutamisel ei ühtinud hierarhilised taseme eraldajad, tekkis lõpmatu silmus, mis viis mälu ületäitmiseni.
- dsync: Inkrementaalne dsync ei toimunud kaustade nimede puhul, mis lõppesid '%'-ga, kui BROKENCHAR väärtust ei olnud seatud. Samuti põhjustasid kaustade nimed '%', kui need olid mujal, et iga inkrementaalse dsync puhul toimus liigseid kaustade ümbernimetamisi ajutiseks nimeks ja tagasipööramine. Regressioon v2.3.19.
- imap-hibernate: Kui IMAP-kliendi avamisel tekkis ajutine katkestus sõnumiga „(versioon saadud)”, oli hilisem avamine edukalt lõpetatud ja jätkas normaalset tööd. See põhjustas segadust, kuna imap-hibernate oli juba registreerinud, et klient oli välja lülitatud. Sellega saab vältida, kui sundida ühendust lõppema hübriidimise ajutise katkestamise tõttu.
- imapc: Kaotus, kui kaust, mida kuvatakse virtuaalsete pluginate kaudu, kaob salvestusest.
- imapc: Vastused EXPUNGE, EXISTS või FETCH koos serverile varem valitud postkasti võidi töödelda nii, nagu kuuluvad need uuele postkastile, mis on hetkel valitud. See võis põhjustada hoiatuste tekkimist.
- lib-http: Dovecot HTTP-server (doveadm, stats/openmetrics) võis katkestada HTTP-klientide ühendused enne vastuse täielikku saatmist. See juhtus ainult koormatud serverites, kus tuumade socket-bufferid olid tugevalt ülekoormatud.
- lib-http: Parandatud võimaliku http-serveri krahhi korral, kui klient katkestab liiga vara. Regressioon 2.3.18.
- lib-index: Indeksi faili kahjustamine võib põhjustada süsteemi kokkujooksmise. Lahendatud: Panic: file mail-transaction-log-view.c: line 165 (mail_transaction_log_view_set): assertion failed: (min_file_seq <= max_file_seq).
- lib-index: Olemasoleva kühveldusfaili puhastamine rohkem kui 1 GB võis põhjustada tõrke. Nüüd, pärast puhastamist, kustutatakse kühveldusfailid, mille suurus ületab endiselt 1 GB. Lahendatud: Panic: file mail-index-util.c: line 10 (mail_index_uint32_to_offset): assertion failed: (offset < 0x40000000).
- lib-lua: HTTP-kliendil ei õnnestunud määrata DNS-nimesid postiprotsessides, kuna ta ootas, et 'dns-client' sokett asub praeguses kataloogis.
- lib-oauth2: Dovecot saatis client_id ja client_secret POST-parameetritena introspektsiooniserverisse. Kuid Basic auth'i puhul on nende kasutamine valikuline.
- lib-oauth2: JWT 'aud' valideerimist ei toimunud, kui 'aud' puudus tokenis, kuid see oli Dovecotis seadistatud.
- lib-oauth2: Liigne JWT võtme tüübi kontrollimine.
- lib-oauth2: JWT-tokeni auditooriumit ei kontrollitud client_id vastavuse osas, nagu nõuab spetsifikatsioon.
- lib-ssl-iostream: ssl_require_crl=yes parameetri kasutamine võis põhjustada CRL-i kontrollimise tõrkeid väljuvate SSL/TLS-ühenduste jaoks, kuigi eeldati, et see mõjutab CRL-i kontrollimist ainult klientide puhul. SSL-sertifikaate. v2.3.17 regressioon.
- lib-sql: MySQL draiver põhjustas mälu leket ebaõnnestunud ühenduse korral.
- lib-storage: Erinevad parandused, kui kettaruumi on vähe.
- master: idle_kill teenuse seadistamine ei toiminud korralikult koormatud serverites. Oli väga ebatõenäoline, et mõni protsess oleks piisavalt kaua oodanud, et olla tapetud. Lisaks, kui protsesse oli palju (nt imap), kasutas idle_kill koodi töötlemine peaprotsessis piisavalt palju CPU-d. Nüüd jälgib iga idle_kill ajavahemik kõige vähem ooteprotsesside arvu ja seejärel tapab selle arvu.
- mdbox: Ajutiste failide kontrollimist tehti alati tühiade kataloogide puhul.
- mdbox: Kirjade kirjutamisel tehti fdatasync() kutsumine vale vanemkatalooge. Samuti toimus tõrke korral langemine, mitte veateate logisse kirjutamine.
- notify_status: Plugina ebaõnnestunud kasutaja initsialiseerimisel lõpetab töö. — pop3: Komandi saatmine sümboliga ‘:’ viis «assert-crash» tõrkeni. Regressioon väljal 2.3.18.
- stats: Hirmu on kõrvaldatud, mille põhjustas mittetoimiva sündmuse eksportija pöördumine uue mõõtme dünaamilisel lisamisel käsuga „doveadm stats add“. Nüüd kuvatakse õige tõrge.
- stats: Kui protsess eksportis palju sündmusi ja seejärel lõpetas, võis osa viimaseid sündmusi kaduma minna.
- stats: Teatud histogrammide group_by konfiguratsioonide korral loodi vale Prometheuse sildid. Prometheus jätsid need sildid kõrvale.
- welcome: Plug-in ei töötanud teatud olukordades, kui INBOX loodi, kuid ei olnud avatud, näiteks kui enne INBOX avamist kasutati GETMETADATA-d.
Allikas: opennet.ru
