Gerhard Wiesinger
2012-Aug-30 18:34 UTC
[Dovecot] deliver doesn't update cache index with mbox
Hello Timo, I'm having a problem with mbox that opening folder is slow when new mails are delivered to a folder. I'm delivering through the deliver program. Deliver updates index files but IHMO not completely correct. Therefore I compared index files before and after: 1.) Just delivered 2.) After accessing through imap via Thunderbird diff looks like (stripped down to the relevant things): INDEX: -first recent uid ......... = 25847 +first recent uid ......... = 25848 -log file tail offset ..... = 16468 -log file head offset ..... = 16468 +log file tail offset ..... = 16828 +log file head offset ..... = 16828 - - sync_mtime . = 2012-08-30 19:38:05 + - sync_mtime . = 2012-08-30 20:09:23 - - dirty_flag . = 1 + - dirty_flag . = 0 - - highest_modseq = 11162 + - highest_modseq = 11163 - - log_offset ... = 16468 + - log_offset ... = 16828 CACHE: -used_file_size ....... = 6385696 +used_file_size ....... = 6392132 RECORD: seq=25663, uid=25835, flags=0x00 - - ext 0 keywords : (0000) - - ext 1 modseq : 11156 (942b000000000000) + - ext 0 keywords : (0100) + - ext 1 modseq : 11163 (9b2b000000000000) - ext 2 mbox : 42923286 (16f58e0200000000) - - ext 3 cache : 0 (00000000) + - ext 3 cache : 6385696 (20706100) - ext 4 header-md5: (00000000000000000000000000000000) + - cache offset=6385696 size=488, prev_offset = 0 + - hdr.BCC: + - hdr.CC: + - hdr.CONTENT-TYPE: 18: Content-Type: text/plain; charset=us-ascii + - hdr.DATE: 13: Date: Thu, 30 Aug 2012 19:37:24 +0200 <some other hdr.xxxxx lines removed> + - size.virtual: 1081 (3904000000000000) Same patterns from record: 25664-25675 What does dirty_flag=1 mean? Why are the cache headers missing and not written by deliver? Any ideas? Config is below. Thank you. Ciao, Gerhard # 2.1.9: /etc/dovecot/dovecot.conf # OS: Linux listen = * mail_full_filesystem_access = yes mail_location = mbox:~:INBOX=/var/mail/%u mbox_lazy_writes = no mbox_write_locks = fcntl passdb { driver = pam } postmaster_address = postmaster at domain protocols = imap service auth { unix_listener auth-userdb { group = users mode = 0660 } } service imap-login { inet_listener imap { port = 0 } } service imap { executable = imap postlogin } service postlogin { executable = script-login -d rawlog } ssl_cert = </etc/pki/dovecot/dovecot-extern.pem ssl_key = </etc/pki/dovecot/private/dovecot-extern.pem userdb { driver = passwd } protocol imap { imap_client_workarounds = tb-extra-mailbox-sep } protocol lda { lda_mailbox_autocreate = yes log_timestamp = %Y.%m.%d %H:%M:%S%t mail_debug = yes mail_location = mbox:~/Mail:INBOX=/var/mail/%u }