Dovecot 2 uidlist-ben üzenet sorrend felcserélődése probléma

Fórumok

Sziasztok,

dovecot 2-vel van egy olyan problémám, amellyel már nem tudunk mit kezdeni, egyszerűen se ötlet, se lövés nincs.

A jelenség az, hogy az ügyfél jelzi: bár küldenek neki levelet, azokat nem kapja meg (eltérő kliensek, legtöbbször Thunderbird és Office Outlook). Valójában a fizikai postafiókban ott vannak a levelek, ráadásul olvasottak is, ennek ellenére a kliens nem mutatja meg neki (maildir-t használunk).
A naplózásban az alábbi hiba üzenet társul: Error: Message ordering changed unexpectedly (msg #1: storage seq 32 -> 1)

A hibaüzenetből arra következtetek, hogy a kliensen és a szerveren lévő levelek sorrendje nem egyezik (bár ebben nem vagyok biztos), a problémát pedig csak az oldja meg, ha töröljük a dovecot-uidlist fájlt. A gond ezzel az, hogy ilyenkor a kliens újrahúzza a leveleket.

Már mindenféle naplózást beállítottunk, és ennek alapján az a tapasztalat, hogy ez a hiba minden esetben csak expunge utasítás után kerül elő - bár igaz, hogy nem minden expunge után. Mai nap is volt egy ilyen fiók: négy expunge után a legközelebbi loginkor már meg is volt a hibaüzenet, illetve maga a hiba.

Sajnos ennyire már nem értek a levelezéshez, de úgy tűnik, hogy az expunge nem közvetlen a levél törlése után kerül végrehajtásra; ezt a kliens automatikusan indítja el, pl. mikor logout-ol (esetleg mikor a klienst kikapcsolják).

Amit egyáltalán nem tudunk hová tenni az az, hogy több száz fiókból csak néhányat érintett a dolog, egy cégnél vannak visszaeső fiókok és az expunge eseményen kívül nincs más azonos körülmény. Gondoltam arra is, hogy esetlegesen a kliens oldalán lassú a hálózat, ami nemtom miért, de okozhatja ezt a problémát.

Ismeri valaki ezt a hibajelenséget? Nagyon megköszönném a segítséget!

Üdv:
Medvesajt

Hozzászólások

(még nem találkoztam ilyennel)
LDA-n (Dovecot?) és Dovecot-on kívül más process nem férhet hozzá maildir-ekhez?
Nem próbáltatok más verziót (akár downgrade 1.X-ra)?

Dovecot és LDA-n kívül nem tudok más program hozzáféréséről. A szokásos virtual tárolásban oldottuk meg, vmail a tulajdonos, csak neki van joga.

Még abban sem vagyok biztos, hogy a hiba jelentés tényleg a szerver és kliens között közötti kapcsolat alapján adódik, elképzelhető, hogy a Dovecot hibázik, az expunge után néha rosszul módosítja a dovecot-uidlist fájl, a kliens pedig csak szenvedő fél.

Nagyon fura ez a dolog, mert korábban courier-t használtunk, aminél ilyen mélységekben soha nem kellett foglalkoznunk a programmal.

A jelenséggel még nem találkoztam. Azonban ahogy eddig megismertem a dovecot-ot, abból azt mondom nem biztos, hogy a dovecot hibázik. A probléma feloldását mindenképp a dovecot listára történő komplex hibajelentéssel kezdeném. Ha a dovecot hibázik akkor szerencséd van, nagyon röviden javítani fogják.

Igen, szerintem ez lesz a következő lépés, mert annyi minden megfordult már a fejünkben, de ismerethiány miatt semmi sem biztos.
Tudja-e esetleg valaki, hogy mi a működési elve pop3 protokoll alatt a kliens általi törlésnek, illetve ennek szerveren történő véglegesítésnek? Egyáltalán tényleg van lista sorrend egyeztetés?

Lehet, arról lenne csak szó, hogy mindegyik expunge lefutott, de valamelyik nem került visszajelzésre a kliensnek (mondjuk elveszett hálózati kapcsolat miatt), így más a lista a kliensen és a szerveren?

Egyébként több dolgot beállítottunk pluszban a dovecot-ban:

pop3_reuse_xuidl = yes
pop3_lock_session = yes
pop3_save_uidl = yes

Azóta a visszaeső cég egyik fiókja sem hibázott, csak egy másik cég egyetlen fiókja tegnap, azóta pedig semmi.

Gondolom ezen már túl vagytok:

http://wiki.dovecot.org/Clients

Note that Outlook 2003 seems to have problems with %v.%u format which was
# Dovecot's default, so if you're building a new server it would be a good
# idea to change this. %08Xu%08Xv should be pretty fail-safe.
#
pop3_uidl_format = %08Xu%08Xv

Esetleg érdekes lehet a kliens verzióját determinálni, de sehol nem látok erre lehetőséget.

Szia!
Sikerült megoldást találni a problémára?
Üdv:
Cseresznye

Eloszor is hanyas dovecot? Probaltatok mar ujabbal?

Nekem volt hasonlo hibam, ott megkerultuk a problemat az user IMAP-ra szoktatasaval, de csak egynel jott elo.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Sziasztok, bocs, hogy egy kicsit kiestem a témából!

dovecot verzió 2.0.13

A problémát végül is megoldottuk, de a mai napig nem tudjuk, hogy konkrétan mi volt a probléma.

A megoldás az volt, hogy a pop3 konfigurációban megadtuk:

pop3_reuse_xuidl = yes
pop3_lock_session = yes
pop3_save_uidl = yes

Innentől kezdve nincs probléma. A naplózásban néha látni lockolással kapcsolatos üzeneteket, azaz mintha az adott user a maga által lockolt sessionjén kívül is hozzá akarna férni a fiókhoz: Error: Couldn't open INBOX: Timeout while waiting for lock

Ebből arra is lehetne következtetni, hogy a több egyidejű kapcsolat okozhatta a gondot, gondolom mikor két folyamat végzett olyan műveletet azonos időben, amelyek a dovecot-uidlist fájlt kellett érinteni (és az egyik nem tudta).

Az uidl formátuma %08Xu%08Xv, ezt javasolta a dovecot is.

Más. imap, kliensek.
Nemtom ki hogy van ezzel, de sajnos a kliensekkel kapcsolatban nem sok beleszólásunk van: Outlook Expresstől kezdve minden megtalálható. Sok cég saját rendszergazdával a háta mögött megkapja azt, amit az aktuális rendszergazda tud, ismer, gondol (sajna sok a dilettáns), és erre rájátszanak a laikusok szokásai. Persze igen sokszor adunk tanácsot, akár Mozilla Sales-ek is lehetnénk :) (vagy Live Mail)

Azt is tapasztalni, hogy pl. az imap-ot mi is javasoljuk mindenkinek, nem győzzük a különbséget kiemelni, sikerül is, aztán a rendszergazda mindent visszaállít pop3-ra. (konkrétan az egyik esetnél tudjuk, hogy egy 50 fős cégnél a sávszélességre hivatkozva).

(facepalm) Annyira sajnalom, hogy a maglyahalalt, mint olyat, eltoroltek. A vajakosoknak pont megfelelo lenne, akik erdemi hozzertes nelkul vajakolnak.

Amugy az ilyenen villamgyorsan lehet am tullendulni: "Cegunk csak az IMAP kapcsolodast tamogatja teljeskoruen. Lehetoseg van POP3 csatlakozasra, de ezt mindenki csak sajat felelossegre hasznalhatja". Oszt annyi.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Előjött egy érdekes dolog nálam is (2.1.7):
Teljeskörű logolás van beállítva, látom az imap műveletek is a dovecot.log-ban.
Egy idő után (1 napon belül) azonban ezek eltűnnek és innentől csak az LDA bejegyzései jelennek meg.
Ha újraindítom a dovecot-ot, megint teljes lesz a logolás.