Hercule Poirot si misterul mailboxurilor corupte
Azi am dat de urma acestei enigme, se pare ca procmailul (care scrie in mailboxuri), respectiv dovecot (care citeste si sterge din ele) foloseau metode diferite de locking si ca atare fiecare citire de mail era o ruleta ruseasca (cu sanse mult mai mici de esec, dar la fel de inacceptabile). Solutia adoptata:
- am pus dovecot sa foloseasca mbox_locks=dotlock (in loc de fcntl) si l-am invatat sa lucreze cu gid=mail (optiunea mail_extra_groups)
- m-am asigurat ca utilitarul lockfile (folosit de procmail pt. locking) este setgid mail
- am avut grija ca /var/mail sa fie group-writable si cu owned de grupul mail
- restart dovecot && hope this was it
Explicatie: procmail -vl zicea ca foloseste dotlock si fcntl ca failback, pe cand dovecot doar fcntl. Metoda dotlock reusea pt. ca lockfile era deja setgid mail. Metoda alternativa ar fi fost sa dezactivez cumva dotlock de la procmail (macar castrand lockfile de setgid), dar asa mi s-a parut mai clean. Plus ca nu stiu exact cum functioneaza fcntl, dotlock e mai evident