[Dovecot] panic in dovecot when using fts with solr

André Rodier andre.rodier at gmail.com
Mon Mar 4 17:42:20 EET 2013


Ok,

I found the issue.

The solr schema xml file was wrong, and I did not check the error logs
correctly. So, the error was in solr:

04-Mar-2013 15:15:30 org.apache.solr.common.SolrException log
SEVERE: org.apache.solr.common.SolrException: ERROR:unknown field 'uid'
        at org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:289)
        at org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:60)
        at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:139)
        at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:69)
        at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1317)
        at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:843)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
        at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

04-Mar-2013 15:15:30 org.apache.solr.core.SolrCore execute
INFO: [] webapp=/solr path=/update params={} status=400 QTime=70

However, IMHO, I don't think that dovecot handle the errors correctly.
It should return an error message.

Kind regards,
André Rodier

On 4 March 2013 10:01, André Rodier <andre.rodier at gmail.com> wrote:
> This is my doveconf output. Please, note that since the panic, I have
> switched to fts with squat, but it is very limited for large
> mailboxes.
>
> Any idea how to fix this?
>
> # 2.1.7: /etc/dovecot/dovecot.conf
> # OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.0
> auth_default_realm = indiefield.co.uk
> auth_master_user_separator = :
> auth_mechanisms = plain login
> auth_username_chars =
> abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890 .-_@
> auth_username_translation = "- _ "
> auth_verbose = yes
> disable_plaintext_auth = no
> dotlock_use_excl = no
> hostname = smtp.indiefield.org.uk
> lda_mailbox_autocreate = yes
> lda_mailbox_autosubscribe = yes
> lock_method = dotlock
> mail_access_groups = vmail
> mail_fsync = always
> mail_gid = vmail
> mail_location = maildir:~/Mails/Maildir/:INDEX=~/Mails/Indexes/
> mail_plugins = autocreate quota acl virtual listescape fts fts_squat
> mail_privileged_group = vmail
> mail_uid = vmail
> maildir_copy_with_hardlinks = no
> 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
> mmap_disable = yes
> namespace {
>   hidden = no
>   inbox = no
>   list = yes
>   location = maildir:/var/vmail/%d/Public/Mails/Maildir/:INDEX=~/Mails/PublicIndexes/
>   prefix = Public/
>   separator = /
>   subscriptions = yes
>   type = public
> }
> namespace {
>   list = children
>   location = maildir:%%h/Mails/Maildir/:INDEX=~/Mails/SharedIndexes/%%u
>   prefix = Shared/%%d/%%n/
>   separator = /
>   subscriptions = no
>   type = shared
> }
> namespace inbox {
>   hidden = no
>   inbox = yes
>   list = yes
>   location = maildir:~/Mails/Maildir/:INDEX=~/Mails/Indexes/
>   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 = /
>   subscriptions = yes
>   type = private
> }
> passdb {
>   args = /etc/dovecot/dovecot-ldap.conf.ext
>   driver = ldap
> }
> plugin {
>   acl = vfile:/etc/dovecot/global-acls:cache_secs=300
>   acl_anyone = allow
>   acl_shared_dict = file:/var/vmail/indiefield.co.uk/shared-mailboxes
>   autocreate = Trash
>   autocreate2 = Drafts
>   autocreate3 = Sent
>   autocreate4 = Junk
>   autocreate5 = Archives
>   autosubscribe = Trash
>   autosubscribe2 = Drafts
>   autosubscribe3 = Sent
>   autosubscribe4 = Junk
>   autosubscribe5 = Archives
>   fts = squat
>   fts_squat = partial=4 full=10
>   listescape_char = %%
>   quota = maildir:User quota
>   quota_warning = storage=95%% quota-warning 95 %u
>   sieve = ~/Mails/.dovecot.sieve
>   sieve_after = %h/Mails/Sieve/After/
>   sieve_before = /etc/dovecot/sieve-default/before/
>   sieve_dir = ~/Mails/Sieve
>   sieve_max_script_size = 4M
> }
> protocols = " imap lmtp sieve pop3"
> service auth-worker {
>   user = vmail
> }
> service auth {
>   unix_listener /var/spool/postfix/private/auth {
>     group = vmail
>     mode = 0666
>     user = postfix
>   }
>   unix_listener auth-userdb {
>     group = vmail
>     mode = 0666
>     user = postfix
>   }
>   user = vmail
> }
> service dict {
>   unix_listener dict {
>     group = vmail
>     mode = 0600
>     user = vmail
>   }
> }
> service director {
>   fifo_listener login/proxy-notify {
>     group = postfix
>     mode = 0666
>     user = postfix
>   }
>   unix_listener director-userdb {
>     group = postfix
>     mode = 0600
>     user = postfix
>   }
>   unix_listener login/director {
>     group = postfix
>     mode = 0666
>     user = postfix
>   }
> }
> service lmtp {
>   group = vmail
>   inet_listener lmtp {
>     port = 24
>   }
>   user = vmail
> }
> service managesieve-login {
>   inet_listener sieve {
>     port = 4190
>   }
> }
> service quota-warning {
>   executable = script /etc/dovecot/scripts/quota-warning.sh
>   unix_listener quota-warning {
>     user = vmail
>   }
>   user = dovecot
> }
> ssl_cert = </etc/apache2/certs/generic.indiefield.org.uk.crt
> ssl_key = </etc/apache2/certs/generic.indiefield.org.uk.key
> userdb {
>   args = /etc/dovecot/dovecot-ldap.conf.ext
>   driver = ldap
> }
> protocol lmtp {
>   mail_plugins = quota sieve virtual
> }
> protocol lda {
>   auth_socket_path = /var/run/dovecot/auth-userdb
> }
> protocol imap {
>   mail_plugins = autocreate quota acl virtual listescape fts fts_squat
> imap_quota imap_acl autocreate
> }



-- 
André Rodier


More information about the dovecot mailing list