Dovecot 2.2.34 FTS-SOLR = inconsistent results

kfx kadafax at gmail.com
Mon Mar 5 16:24:23 EET 2018


Hello,

I'm trying to figure why I have inconsistent results with my fts-solr
powered search:

My test is to find the string "am5oocobey9hait5Wiex8yohgoob9thu" in the
3 emails containing it that I sent to myself:

- Directly on the server:
doveadm search -u username text am5oocobey9hait5Wiex8yohgoob9thu
e2c58a3093235153110800003ea484a8 7937
e2c58a3093235153110800003ea484a8 7938
e0c58a3093235153110800003ea484a8 36479
e0c58a3093235153110800003ea484a8 36480
e0c58a3093235153110800003ea484a8 36481

- RoundCube webmail:
0 Result

- On the server with "telnet localhost imap" (2 identical searches):
[snip...]
a23 SEARCH text am5oocobey9hait5Wiex8yohgoob9thu
* SEARCH
* 14488 FETCH (FLAGS (\Seen NonJunk))
* 14495 EXISTS
a23 OK Search completed (0.015 + 0.000 + 0.004 secs).
a25 SEARCH text am5oocobey9hait5Wiex8yohgoob9thu
* SEARCH
a25 OK Search completed (0.006 + 0.000 + 0.003 secs).

Here is my setup:

root at myMailServer ~ # uname -a
Linux myMailServer.mydomain 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25
20:13:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
root at myMailServer ~ # cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
root at plainte ~ # doveconf -n
# 2.2.34 (874deae):
/usr/local/etc/dovecot/dovecot.conf                                                                                                                                                                                                                                                            
[50/1259]
# Pigeonhole version 0.4.22 (22940fb7)
# OS: Linux 3.10.0-693.17.1.el7.x86_64 x86_64 CentOS Linux release
7.4.1708 (Core)  ext4
# Hostname: myMailServer.mydomain
auth_cache_size = 10 M
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 = mydomain
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
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 = fts fts_solr quota stats
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_autoindex_max_recent = 1000
  fts_solr = url=http://127.0.0.1:8983/solr/dovecot/
  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 mydomain
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/myMailServer.mydomain/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 = fts fts_solr quota stats sieve virtual
}
protocol imap {
  mail_max_userip_connections = 20
  mail_plugins = fts fts_solr quota stats imap_quota virtual imap_stats
}
protocol sieve {
  mail_max_userip_connections = 20
}

SOLR: 7.1.0 configured as pear the wiki.
No error in solr.log and it seems to be indexing okay:
root at myMailServer /var/vmail/solr # du -hs
22G     .

CRONTAB:
0 3 * * * /usr/bin/curl
http://127.0.0.1:8983/solr/dovecot/update?optimize=true > /dev/null 2>&1
*/5 * * * * /usr/bin/curl
http://127.0.0.1:8983/solr/dovecot/update?commit=true > /dev/null 2>&1

I would be very grateful if someone can point me where my error is, as
I've been on this problem for weeks :(

Thanks,
kfx


More information about the dovecot mailing list