Bug: Dovecot index loosing sync with FTS despite "fts_autoindex = yes"
kfx
kadafax at gmail.com
Thu May 24 15:22:36 EEST 2018
After seeing that dovecot 2.2.36 was out and that:
> - fts: Fixes to indexing mails via virtual mailboxes.
> - fts: If mails contained NUL characters, the text around it wasn't
> indexed.
I've upgraded but the problem still persist :(
On 21/05/2018 13:11, kadafax at gmail.com wrote:
> Le 21/05/2018 à 12:38, Aki Tuomi a écrit :
>> can you try turning on pluign { fts_enforced = yes } and repeat your test?
>
> Same (wrong) result:
> 1. Send an email with "too6Ouka" in the body
>
> 2. Search against "too6Ouka":
> # doveadm search -u username mailbox INBOX body too6Ouka
> --> No result
>
> 3. Force re-index:
> # doveadm fts rescan -u username
>
> 4. Search again against "too6Ouka":
> # doveadm search -u username mailbox INBOX body too6Ouka
> --> e09cce0283e8695ab760000002deed92 29055
>
> Don't know if relevant, but on a side note, if I send a second message
> with "too6Ouka" in the body, followed by:
> # doveadm -v index -u username Inbox
> --> doveadm(username): Info: INBOX: Cache is already up to date
> And a search against the pattern immediately return only one result
> instead of two.
>
> # doveconf -n
> # 2.2.34 (874deae): /usr/local/etc/dovecot/dovecot.conf
> # Pigeonhole version 0.4.22 (22940fb7)
> # OS: Linux 3.10.0-862.2.3.el7.x86_64 x86_64 CentOS Linux release
> 7.5.1804 (Core) ext4
> # Hostname: mailserver.domain
> auth_master_user_separator = *
> auth_socket_path = /var/run/dovecot/auth-userdb
> auth_username_chars =
> abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@*
> auth_verbose = yes
> base_dir = /var/run/dovecot/
> debug_log_path = /var/log/dovecot-debug.log
> default_client_limit = 5120
> default_process_limit = 1024
> default_vsz_limit = 2 G
> hostname = domain
> info_log_path = /var/log/dovecot.log
> lda_mailbox_autocreate = yes
> lda_mailbox_autosubscribe = yes
> listen = *
> log_path = /var/log/dovecot-error.log
> login_greeting = Welcome to dovecot on mydomain
> login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
> mail_gid = vmail
> mail_location = maildir:/var/vmail/%Ln
> mail_plugins = " quota stats fts fts_solr"
> mail_uid = vmail
> managesieve_notify_capability = mailto
> managesieve_sieve_capability = fileinto reject envelope
> encoded-character vacation subaddress comparator-i;ascii-numeric
> relational regex imap4flags copy include variables body enotify
> environment mailbox date index ihave duplicate mime foreverypart extracttext
> namespace {
> inbox = yes
> location = maildir:/var/vmail/%Ln
> mailbox Drafts {
> auto = subscribe
> special_use = \Drafts
> }
> mailbox Sent {
> auto = subscribe
> special_use = \Sent
> }
> mailbox "Sent Messages" {
> special_use = \Sent
> }
> mailbox Trash {
> auto = subscribe
> special_use = \Trash
> }
> prefix =
> type = private
> }
> passdb {
> args = /usr/local/etc/dovecot/deny-users
> deny = yes
> driver = passwd-file
> }
> passdb {
> args = /usr/local/etc/dovecot/master-users
> driver = passwd-file
> master = yes
> }
> passdb {
> args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext
> driver = ldap
> }
> plugin {
> fts = solr
> fts_autoindex = yes
> fts_enforced = yes
> fts_solr = url=http://localhost:8983/solr/dovecot/ break-imap-search
> quota = maildir:User quota
> quota_rule = *:storage=20GB
> quota_rule2 = Trash:storage=+200M
> quota_warning = storage=95%% quota-warning 95 %u
> quota_warning2 = storage=80%% quota-warning 80 %u
> sieve = /var/sieve-scripts/%Ln.sieve
> sieve_dir = /var/vmail/%Ln/home/sieve
> stats_command_min_time = 1 mins
> stats_domain_min_time = 12 hours
> stats_ip_min_time = 12 hours
> stats_memory_limit = 16 M
> stats_refresh = 30 secs
> stats_session_min_time = 15 mins
> stats_track_cmds = yes
> stats_user_min_time = 1 hours
> }
> postmaster_address = postmaster at domain
> protocols = imap pop3 sieve sieve
> service auth-worker {
> user = root
> }
> service auth {
> unix_listener /var/spool/postfix/private/auth {
> mode = 0777
> user = vmail
> }
> }
> service imap-login {
> inet_listener imaps {
> port = 993
> ssl = yes
> }
> process_min_avail = 10
> }
> service imap {
> process_limit = 2128
> }
> service managesieve-login {
> inet_listener sieve {
> port = 4190
> }
> }
> service pop3-login {
> inet_listener pop3s {
> port = 995
> ssl = yes
> }
> }
> service quota-warning {
> executable = script /usr/local/bin/quota-warning.sh
> user = nobody
> }
> service stats {
> fifo_listener stats-mail {
> mode = 0600
> user = vmail
> }
> }
> ssl_cert = </etc/letsencrypt/live/mailserver.domain/fullchain.pem
> ssl_key = # hidden, use -P to show it
> userdb {
> args = /usr/local/etc/dovecot/dovecot-ldap-userdb.conf.ext
> driver = ldap
> override_fields = uid=vmail gid=vmail home=/var/vmail/%Ln/home
> }
> verbose_proctitle = yes
> protocol lda {
> mail_plugins = " quota stats fts fts_solr sieve virtual"
> }
> protocol imap {
> mail_max_userip_connections = 20
> mail_plugins = " quota stats fts fts_solr imap_quota virtual imap_stats"
> }
> protocol sieve {
> mail_max_userip_connections = 20
> }
>
>
>
>>
>> Aki
>>
>>
>> On 21.05.2018 13:31, kadafax at gmail.com wrote:
>>> Le 21/05/2018 à 11:46, Aki Tuomi a écrit :
>>>> That message is coming from the temporary raw user, not from the actual
>>>> user.
>>>>
>>>> How did you verify that the FTS indexes are not created or updated
>>>> automatically?
>>> I send an email containing a specific strings ('thahB8ea' in that case)
>>> and search agains it:
>>> # doveadm search -u username mailbox INBOX body thahB8ea
>>> --> No result
>>> (same with integrated search on roundcube)
>>>
>>> Then I force a rescan, followed by the same search:
>>> # doveadm fts rescan -u username
>>> # doveadm search -u username mailbox INBOX body thahB8ea
>>> (Long waiting time)
>>> --> e09cce0283e8695ab760000002deed92 29048
>>>
>>> So I conclude that autoindexing is not working.
>>>
>>> Thanks,
>>> kfx
>>>
More information about the dovecot
mailing list