[Dovecot] Maildir POP3 "UID larger than next_uid" bug
dovecot 1.0.0; Free BSD 6.2; x86; UFS; no NFS IMAP not uses at all, POP3 only
Problem description: POP3 client can't fetch second e-mail message from Maildir if first POP3 connect occurs before any message placed in Maildir.
Details:
- POP3-client first time tries to receive mail:
May 14 16:17:36 host dovecot: pop3-login: Login: user=<user@mydomain.ru>, method=PLAIN, rip=192.168.0.100, lip=192.168.0.3 May 14 16:17:36 host dovecot: POP3(user@mydomain.ru): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
dovecot creates Maildir for that user:
/var/mail/virtual/mydomain.ru/user/Maildir/ /cur /new /tmp dovecot.index dovecot.index.cache dovecot.index.log
Postfix MTA receives message for that user and places it at /var/mail/virtual/mydomain.ru/user/Maildir/new/1179145269.V43I3f5a4M116738.host.mydomain.local
POP3-client tries to receive mail:
May 14 16:23:09 host dovecot: pop3-login: Login: user=<user@mydomain.ru>, method=PLAIN, rip=192.168.0.100, lip=192.168.0.3 May 14 16:23:09 host dovecot: POP3(user@mydomain.ru): Disconnected: Logged out top=0/0, retr=1/786, del=1/1, size=770
dovecot creates file dovecot-uidlist with next_uid=1 (!!!): 1 1179145056 1 1 1179145269.V43I3f5a4M116738.host.mydomain.local:2,
Message fetched successfully.
- POP3-client tries to receive mail:
May 14 16:23:29 host dovecot: pop3-login: Login: user=<user@mydomain.ru>, method=PLAIN, rip=192.168.0.100, lip=192.168.0.3 May 14 16:23:29 host dovecot: POP3(user@mydomain.ru): UID larger than next_uid in file /var/mail/virtual/mydomain.ru/user/Maildir/dovecot-uidlist (1 >= 1) May 14 16:23:29 host dovecot: POP3(user@mydomain.ru): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
File dovecot-uidlist disappears.
Postfix MTA receives message for that user and places it at /var/mail/virtual/mydomain.ru/user/Maildir/new/1179145534.V43I3f5a4M116827.host.mydomain.local
POP3-client tries to receive mail:
May 14 16:47:20 host dovecot: pop3-login: Login: user=<user@mydomain.ru>, method=PLAIN, rip=192.168.0.100, lip=192.168.0.3 May 14 16:47:20 host dovecot: POP3(user@mydomain.ru): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
Dovecot creates file dovecot-uidlist: 1 1179145056 2 1 1179145534.V43I3f5a4M116827.host.mydomain.local
Dovecot moves message from new to cur directory and adds flag ":2,":
/var/mail/virtual/mydomain.ru/user/Maildir/cur/1179145534.V43I3f5a4M116827.host.mydomain.local:2,
Message not fetched. And POP3 client can't fetch it at all.
All next messages fetches normally as they arrives.
# /usr/local/etc/dovecot.conf protocols: pop3 pop3s ssl_cert_file: /etc/ssl/certs/host.mydomain.ru.crt ssl_key_file: /etc/ssl/private/host.mydomain.ru.key disable_plaintext_auth: no login_dir: /var/run/dovecot/login login_executable: /usr/local/libexec/dovecot/pop3-login login_greeting: POP3 server ready verbose_proctitle: yes first_valid_gid: 0 mail_extra_groups: mail mail_location: maildir:~/Maildir mail_executable: /usr/local/libexec/dovecot/pop3 mail_plugin_dir: /usr/local/lib/dovecot/pop3 pop3_uidl_format: %08Xu%08Xv pop3_client_workarounds: outlook-no-nuls oe-ns-eoh auth default: mechanisms: plain login digest-md5 cram-md5 apop ntlm default_realm: mydomain.ru passdb: driver: pam passdb: driver: passwd-file args: /etc/auth/%d/passwd userdb: driver: passwd userdb: driver: static args: uid=5000 gid=5000 home=/var/mail/virtual/%d/%n socket: type: listen client: path: /var/spool/postfix/private/auth mode: 432 user: postfix group: postfix master:
On Mon, 2007-05-14 at 17:36 +0400, Alexander Moisseev wrote:
POP3 client can't fetch second e-mail message from Maildir if first POP3 connect occurs before any message placed in Maildir.
Thanks. Fixed: http://dovecot.org/list/dovecot-cvs/2007-May/008819.html
participants (2)
-
Alexander Moisseev
-
Timo Sirainen