[Dovecot] dovecot 2.2.10 & fts_lucene: Failed to initialize backend

Benjamin Podszun dar at darklajid.de
Thu Apr 3 09:18:22 UTC 2014


Hey there.

(Lesson to self: Don't try to be cute. Somehow a trademark sign breaks my 
setup and the rest of the mail is discarded? Sorry for the previous, 
incomplete post)

Lurking most of the time here, currently I'm trying to make FTS work.
As far as I understand [1], squat is deprecated, solr is a rather big 
dependency for my 'friends & family' type of installation: Lucene it is!

My problem: The lucene backend isn't working, I get this error whenever I 
try to access it (be it doveadm fts or a search, triggering an index):

# doveadm fts rescan -u dar at darklajid.de
doveadm(dar at darklajid.de): Error: fts: Failed to initialize backend 
'lucene': Unknown backend
doveadm(dar at darklajid.de): Error: fts not enabled for user's namespace 
(null)

Any ideas what I might be doing wrong here? All the details I could think 
of are below, any help would be appreciated.

Regards,
Ben

--

Package information

# pkg info dovecot2
dovecot2-2.2.10
Name           : dovecot2
Version        : 2.2.10
Installed on   : Mon Mar 31 17:14:26 CEST 2014
Origin         : mail/dovecot2
Architecture   : freebsd:10:x86:64
Prefix         : /usr/local
Categories     : mail ipv6
Licenses       : MIT or LGPL21
Maintainer     : bra at fsn.hu
WWW            : http://www.dovecot.org/
Comment        : Secure and compact IMAP and POP3 servers
Options        :
	DOCS           : off
	EXAMPLES       : off
	GSSAPI         : off
	KQUEUE         : on
	LDAP           : off
	LIBWRAP        : off
	LUCENE         : on
	MYSQL          : off
	PGSQL          : on
	SOLR           : off
	SQLITE         : off
	SSL            : on
	VPOPMAIL       : off
Shared Libs required:
	libssl.so.8
	libpq.so.5
	libdovecot.so.0
	libdovecot-storage.so.0
	libdovecot-login.so.0
	libdovecot-lda.so.0
	libcrypto.so.8
	libclucene-shared.so.1
	libclucene-core.so.1
Shared Libs provided:
	libssl_iostream_openssl.so
	libdovecot.so.0
	libdovecot-storage.so.0
	libdovecot-sql.so.0
	libdovecot-login.so.0
	libdovecot-lda.so.0
	libdovecot-compression.so.0
	libauthdb_imap.so
	lib95_imap_stats_plugin.so
	lib90_stats_plugin.so
	lib30_imap_zlib_plugin.so
	lib21_fts_squat_plugin.so
	lib21_fts_lucene_plugin.so
	lib20_zlib_plugin.so
	lib20_virtual_plugin.so
	lib20_replication_plugin.so
	lib20_mailbox_alias_plugin.so
	lib20_mail_log_plugin.so
	lib20_listescape_plugin.so
	lib20_fts_plugin.so
	lib20_expire_plugin.so
	lib20_doveadm_fts_plugin.so
	lib20_doveadm_fts_lucene_plugin.so
	lib20_autocreate_plugin.so
	lib15_notify_plugin.so
	lib11_trash_plugin.so
	lib11_imap_quota_plugin.so
	lib10_quota_plugin.so
	lib10_doveadm_quota_plugin.so
	lib10_doveadm_expire_plugin.so
	lib10_doveadm_acl_plugin.so
	lib05_snarf_plugin.so
	lib05_pop3_migration_plugin.so
	lib02_lazy_expunge_plugin.so
	lib02_imap_acl_plugin.so
	lib01_acl_plugin.so

--

Sure enough, the libraries are there/in places that look fine to me:

# pkg info -l dovecot2 | grep -i fts
	/usr/local/lib/dovecot/doveadm/lib20_doveadm_fts_lucene_plugin.a
	/usr/local/lib/dovecot/doveadm/lib20_doveadm_fts_lucene_plugin.la
	/usr/local/lib/dovecot/doveadm/lib20_doveadm_fts_lucene_plugin.so
	/usr/local/lib/dovecot/doveadm/lib20_doveadm_fts_plugin.a
	/usr/local/lib/dovecot/doveadm/lib20_doveadm_fts_plugin.la
	/usr/local/lib/dovecot/doveadm/lib20_doveadm_fts_plugin.so
	/usr/local/lib/dovecot/lib20_fts_plugin.a
	/usr/local/lib/dovecot/lib20_fts_plugin.la
	/usr/local/lib/dovecot/lib20_fts_plugin.so
	/usr/local/lib/dovecot/lib21_fts_lucene_plugin.a
	/usr/local/lib/dovecot/lib21_fts_lucene_plugin.la
	/usr/local/lib/dovecot/lib21_fts_lucene_plugin.so
	/usr/local/lib/dovecot/lib21_fts_squat_plugin.a
	/usr/local/lib/dovecot/lib21_fts_squat_plugin.la
	/usr/local/lib/dovecot/lib21_fts_squat_plugin.so

--

Doveconf:

# 2.2.10: /usr/local/etc/dovecot/dovecot.conf
# OS: FreeBSD 10.0-RELEASE amd64  ufs
first_valid_uid = 1
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k
mail_home = /var/vmail/%d/%n
mail_location = maildir:/var/vmail/%d/%n/Maildir
mail_plugins = fts
mail_privileged_group = mail
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 ihave
namespace {
  inbox = yes
  location =   mailbox Drafts {
    auto = no
    special_use = \Drafts
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Spam {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Trash {
    auto = create
    special_use = \Trash
  }
  prefix =   separator = /
}
passdb {
  args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  antispam_backend = dspam
  antispam_dspam_args = --user;%Lu;--source=error;--signature=%%s
  antispam_dspam_binary = /usr/local/bin/dspamc
  antispam_dspam_notspam = --class=innocent
  antispam_dspam_result_header = X-DSPAM-Result
  antispam_dspam_spam = --class=spam
  antispam_signature = X-DSPAM-Signature
  antispam_signature_missing = error
  antispam_spam = Spam;Junk
  antispam_trash = trash;Trash
  fts = lucene
  fts_lucene = whitespace_chars=@.
  sieve = ~/.dovecot.sieve
  sieve_before = /usr/local/etc/dovecot/sieve/before
  sieve_dir = ~/sieve
}
postmaster_address = postmaster at ben.sh
protocols = imap lmtp sieve
service auth-worker {
  user = vmail
}
service auth {
  unix_listener /var/prosody/private/auth {
    group = prosody
    mode = 0660
    user = prosody
  }
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-master {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-userdb {
    group = vmail
    mode = 0660
    user = vmail
  }
  user = dovecot
}
service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
  user = vmail
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
}
service managesieve {
  process_limit = 128
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    port = 0
  }
}
ssl = required
ssl_cert = </usr/local/etc/dovecot/ssl/certs/ben.sh.pem
ssl_cipher_list = EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH 
EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4
ssl_key = </usr/local/etc/dovecot/ssl/private/ben.sh.key
userdb {
  args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocol sieve {
  mail_max_userip_connections = 10
  managesieve_max_compile_errors = 5
}
protocol lmtp {
  mail_plugins = quota sieve
}
protocol imap {
  mail_plugins = fts fts_lucene quota imap_quota antispam
}

1: http://wiki2.dovecot.org/Plugins/FTS


More information about the dovecot mailing list