Karl O. Pinc
2014-Oct-30 03:30 UTC
Bug in fts (solr?, Maildir?) incorrect last_indexed_uid
Hi,
I thought I should document this.
(Dovecot 2.2.9, see config at bottom.)
I installed dovecot and then converted a
number of mbox mailboxes to Maildir,
and had a number of pre-existing Maildir mailboxes.
I then installed the debian (wheezy) fts-solar
and jetty packages, and tested my inbox
using the "telnet localhost imap
...
3 SEARCH text "test"
method as described on the dovecot wiki.
Everything seemed to work.
But when I used balsa to search a mailbox other
than my inbox, I got no results.
"doveadm dump" on the searched mailbox
showed that "last_indexed_uid" to be
the last uid of my inbox.
Stopping dovecot,
deleting out the dovecot-index* files,
starting dovecot,
and re-running "doveadm dump" showed
a non-existant last_indexed_uid --
that is, last_indexed_uid did not show
up in the dump output.
Using the telnet method above to attempt
to search again yielded no results,
but this time (I think, I also tried
various times with balsa) the last_indexed_uid
value was that of the last uid in my trash
mailbox. I don't believe I'd yet
tried fts on my trash.
Using balsa as an imap client the results
were very consistent; every Maildir
where "doveadm dump" returned no
last_indexed_uid value had the
last_indexed_uid set to that of the
inbox's largest uid.
Running "doveadm fts rescan -u foo" fixed
the problem. (FWIW, now all the Maildirs
seem to have a last_indexed_uid=0.)
Regards,
Karl <kop at meme.com>
Free Software: "You don't pay back, you pay forward."
-- Robert A. Heinlein
# 2.2.9: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-4-486 i686 Debian 7.7
default_vsz_limit = 1 G
disable_plaintext_auth = no
mail_location = maildir:~/Maildir:INBOX=~/Maildir/.inbox
mail_plugins = fts fts_solr
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
separator = /
}
namespace unconverted {
hidden = no
list = yes
location = mbox:~/mail
prefix = unconverted/
separator = /
subscriptions = yes
type = private
}
passdb {
driver = pam
}
plugin {
fts = solr
fts_autoindex = yes
fts_solr = url=http://localhost:8983/solr/
}
protocols = " imap"
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
}
ssl = required
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
ssl_protocols = !SSLv2 !SSLv3
userdb {
driver = passwd
}
Karl O. Pinc
2014-Oct-30 13:58 UTC
Bug in fts (solr?, Maildir?) incorrect last_indexed_uid
On 10/29/2014 10:30:42 PM, Karl O. Pinc wrote:> Hi, > > I thought I should document this.It seems reproducible. (2.2.9) I just created a new maildir directory (with mkdir). Moving some messages into it, which I assume triggers the configured auto fts indexing, causes the last_indexed_uid value to be set to the uid of the trash mailbox, which, btw, has the largest uid of any of the mailboxes indexed so far. Note that my reading of the logs is that the trash mailbox was _not_ the mailbox most recently indexed. Regards, Karl <kop at meme.com> Free Software: "You don't pay back, you pay forward." -- Robert A. Heinlein
Seemingly Similar Threads
- Bug: Dovecot index loosing sync with FTS despite "fts_autoindex = yes"
- Bug: Dovecot index loosing sync with FTS despite "fts_autoindex = yes"
- Bug: Dovecot index loosing sync with FTS despite "fts_autoindex = yes"
- Bug: Dovecot index loosing sync with FTS despite "fts_autoindex = yes"
- Bug: Dovecot index loosing sync with FTS despite "fts_autoindex = yes"