[Dovecot] Maildir POP3 "UID larger than next_uid" bug

Alexander Moisseev moiseev at mezonplus.ru
Mon May 14 16:36:01 EEST 2007


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:

1. POP3-client first time tries to receive mail:

May 14 16:17:36 host dovecot: pop3-login: Login: user=<user at mydomain.ru>, method=PLAIN, rip=192.168.0.100, lip=192.168.0.3
May 14 16:17:36 host dovecot: POP3(user at 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

2. Postfix MTA receives message for that user and places it at
/var/mail/virtual/mydomain.ru/user/Maildir/new/1179145269.V43I3f5a4M116738.host.mydomain.local

3. POP3-client tries to receive mail:

May 14 16:23:09 host dovecot: pop3-login: Login: user=<user at mydomain.ru>, method=PLAIN, rip=192.168.0.100, lip=192.168.0.3
May 14 16:23:09 host dovecot: POP3(user at 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.

4. POP3-client tries to receive mail:

May 14 16:23:29 host dovecot: pop3-login: Login: user=<user at mydomain.ru>, method=PLAIN, rip=192.168.0.100, lip=192.168.0.3
May 14 16:23:29 host dovecot: POP3(user at 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 at mydomain.ru): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0

File dovecot-uidlist disappears.

5. Postfix MTA receives message for that user and places it at
/var/mail/virtual/mydomain.ru/user/Maildir/new/1179145534.V43I3f5a4M116827.host.mydomain.local

6. POP3-client tries to receive mail:

May 14 16:47:20 host dovecot: pop3-login: Login: user=<user at mydomain.ru>, method=PLAIN, rip=192.168.0.100, lip=192.168.0.3
May 14 16:47:20 host dovecot: POP3(user at 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:




More information about the dovecot mailing list