[Dovecot] fts solr : out of memory
Hi Timo, since I've upgraded to 2.1.8, solr indexer doesnt work correctly. I see a lot of these errors in logs:
Fatal: master: service(indexer-worker): child 9582 returned error 83 (Out of memory (service indexer-worker { vsz_limit=256 MB }, you may need to increase it))
I've tried to set vsz_limit to a lot more, (around 4096 MB) but same problem occurs.
thank for your help ! Regards Tonio
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
doveconf -n # 2.1.8: /etc/dovecot/dovecot.conf # OS: Linux 3.2.13-xxxx-std-ipv6-64 x86_64 Debian wheezy/sid xfs auth_cache_negative_ttl = 0 auth_cache_size = 10 M auth_mechanisms = plain login dict { quota = mysql:/etc/dovecot/dovecot-dict-quota-sql.conf } hostname = maildir2.spamguard.fr log_timestamp = %Y-%m-%d %H:%M:%S mail_gid = vmail mail_location = sdbox:/home/virtual/%u mail_plugins = quota fts fts_solr acl zlib mail_privileged_group = vmail mail_uid = vmail managesieve_notify_capability = mailto managesieve_sieve_capability = comparator-i;octet comparator-i;ascii-casemap fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date spamtest spamtestplus virustest namespace { inbox = yes location = prefix = separator = / type = private } namespace { alias_for = hidden = yes inbox = no list = no location = prefix = INBOX/ separator = / type = private } namespace { list = children location = sdbox:/home/virtual/%%u:INDEX=/home/virtual/%u/shared/%%u prefix = shared/%%u/ separator = / subscriptions = no type = shared } passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } plugin { acl = vfile acl_shared_dict = file:/home/virtual/shared-%d-mailboxes.db autocreate = Spam autocreate2 = SpamFalse autocreate3 = SpamToLearn autocreate4 = Sent autosubscribe = Spam autosubscribe2 = SpamFalse autosubscribe3 = SpamToLearn autosubscribe4 = Sent fts = solr fts_solr = url=http://localhost:8081/solr/ mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename save mailbox_create mail_log_fields = uid box msgid size quota = dict:User quota::proxy::quota quota2 = dict:User quota::file:/home/virtual/%u/dovecot-quota quota_warning = storage=85%% quota-warning 85 %u sieve = ~/dovecot.sieve sieve_before = /home/virtual/sieve/ sieve_dir = ~/sieve zlib_save = bz2 zlib_save_level = 9 } protocols = imap pop3 sieve lmtp service auth { unix_listener /var/spool/postfix-in2/private/auth { group = mail mode = 0660 user = postfix } unix_listener /var/spool/postfix-maildir2/private/auth { group = mail mode = 0660 user = postfix } unix_listener /var/spool/postfix-msa/private/auth { group = mail mode = 0660 user = postfix } unix_listener /var/spool/postfix-smtp06/private/auth { group = mail mode = 0660 user = postfix } unix_listener /var/spool/postfix/private/auth { group = mail mode = 0660 user = postfix } unix_listener auth-in2-master { mode = 0660 user = vmail } unix_listener auth-maildir2-master { mode = 0660 user = vmail } unix_listener auth-master { mode = 0660 user = vmail } unix_listener auth-msa-master { mode = 0660 user = vmail } unix_listener auth-out-master { mode = 0660 user = vmail } unix_listener auth-smtp06-master { mode = 0660 user = vmail } unix_listener auth-userdb { mode = 0660 user = vmail } } service dict { unix_listener dict { mode = 0600 user = vmail } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 } process_limit = 256 process_min_avail = 4 service_count = 0 vsz_limit = 256 M } service lmtp { inet_listener lmtp { address = 46.105.108.210 port = 24 } user = vmail vsz_limit = 368 M } service managesieve-login { inet_listener sieve { port = 4190 } process_limit = 256 vsz_limit = 64 M } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 } process_limit = 256 process_min_avail = 4 service_count = 0 vsz_limit = 256 M } service quota-warning { executable = script /usr/bin/quota-warning.sh unix_listener quota-warning { mode = 0600 user = vmail } user = vmail } ssl = required ssl_ca =
On 2012-07-28, at 11.21, tonio@starbridge.org wrote:
Fatal: master: service(indexer-worker): child 9582 returned error 83 (Out of memory (service indexer-worker { vsz_limit=256 MB }, you may need to increase it))
This looks very much like an issue I've been having with fts-lucene. Indexing works (or at least completes without errors) in 2.1.7, but runs out of memory in 2.1.8.
doveadm -v index -u username '*' crashes with:
doveadm(username): Fatal: pool_system_realloc(536870912): Out of memory doveadm(username): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x41d31) [0xb7699d31] -> /usr/lib/dovecot/libdovecot.so.0(default_fatal_handler+0x47) [0xb7699e47] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0xb766c958] -> /usr/lib/dovecot/libdovecot.so.0(+0x5420e) [0xb76ac20e] -> /usr/lib/dovecot/libdovecot.so.0(+0x3e358) [0xb7696358] -> /usr/lib/dovecot/libdovecot.so.0(buffer_get_space_unsafe+0x72) [0xb76967f2] -> /usr/lib/dovecot/libdovecot.so.0(buffer_append_space_unsafe+0x2b) [0xb769691b] -> /usr/lib/dovecot/libdovecot.so.0(charset_to_utf8+0xe8) [0xb768c3f8] -> /usr/lib/dovecot/libdovecot.so.0(message_decoder_decode_next_block+0x3dd) [0xb767fa4d] -> /usr/lib/dovecot/modules/lib20_fts_plugin.so(fts_build_mail+0x11c) [0xb732881c] -> /usr/lib/dovecot/modules/lib20_fts_plugin.so(+0xb256) [0xb732e256] -> /usr/lib/dovecot/libdovecot-storage.so.0(mail_precache+0xf) [0xb774754f] -> doveadm() [0x805736e] -> doveadm() [0x805422d] -> doveadm() [0x8054aad] -> doveadm(doveadm_mail_try_run+0x12e) [0x8054fae] -> doveadm(main+0x3e4) [0x805bf24] -> /lib/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0xb7527ca6] -> doveadm() [0x8053c11]
The problem occurs repeatably with specific messages. It looks as though the crash happens in lib-charset/charset-iconv.c and the problem was introduced by this change: http://hg.dovecot.org/dovecot-2.1/rev/0fde692cb565. If I remove that one change from 2.1.8, I can index the affected messages again.
I've posted an example message that triggers the crash here: https://www.atom.net/dovecot/testcase1.eml. That's a very contrived test case, but I've encountered the same behaviour with a real message.
--
Matthew Powell matthew@atom.net
Le 28/07/2012 18:09, Matthew Powell a écrit :
On 2012-07-28, at 11.21, tonio@starbridge.org wrote:
Fatal: master: service(indexer-worker): child 9582 returned error 83 (Out of memory (service indexer-worker { vsz_limit=256 MB }, you may need to increase it)) This looks very much like an issue I've been having with fts-lucene. Indexing works (or at least completes without errors) in 2.1.7, but runs out of memory in 2.1.8.
doveadm -v index -u username '*' crashes with:
doveadm(username): Fatal: pool_system_realloc(536870912): Out of memory doveadm(username): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x41d31) [0xb7699d31] -> /usr/lib/dovecot/libdovecot.so.0(default_fatal_handler+0x47) [0xb7699e47] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0xb766c958] -> /usr/lib/dovecot/libdovecot.so.0(+0x5420e) [0xb76ac20e] -> /usr/lib/dovecot/libdovecot.so.0(+0x3e358) [0xb7696358] -> /usr/lib/dovecot/libdovecot.so.0(buffer_get_space_unsafe+0x72) [0xb76967f2] -> /usr/lib/dovecot/libdovecot.so.0(buffer_append_space_unsafe+0x2b) [0xb769691b] -> /usr/lib/dovecot/libdovecot.so.0(charset_to_utf8+0xe8) [0xb768c3f8] -> /usr/lib/dovecot/libdovecot.so.0(message_decoder_decode_next_block+0x3dd) [0xb767fa4d] -> /usr/lib/dovecot/modules/lib20_fts_plugin.so(fts_build_mail+0x11c) [0xb732881c] -> /usr/lib/dovecot/modules/lib20_fts_plugin.so(+0xb256) [0xb732e256] -> /usr/lib/dovecot/libdovecot-storage.so.0(mail_precache+0xf) [0xb774754f] -> doveadm() [0x805736e] -> doveadm() [0x805422d] -> doveadm() [0x8054aad] -> doveadm(doveadm_mail_try_run+0x12e) [0x8054fae] -> doveadm(main+0x3e4) [0x805bf24] -> /lib/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0xb7527ca6] -> doveadm() [0x8053c11]
The problem occurs repeatably with specific messages. It looks as though the crash happens in lib-charset/charset-iconv.c and the problem was introduced by this change: http://hg.dovecot.org/dovecot-2.1/rev/0fde692cb565. If I remove that one change from 2.1.8, I can index the affected messages again.
I've posted an example message that triggers the crash here: https://www.atom.net/dovecot/testcase1.eml. That's a very contrived test case, but I've encountered the same behaviour with a real message.
Hi Matthew, thanks for your answer. most of our email contains French accents, so may be it's related.
I've forgot to post the complete log message for this error earlier:
Jul 27 19:01:00 mx2 dovecot: indexer-worker(cxx@crxx.fr): Fatal: pool_system_realloc(268435456): Out of memory Jul 27 19:01:00 mx2 dovecot: indexer-worker(cxx@crxx.fr): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x43e4a) [0x7fa49c7e4e4a] -> /usr/lib/dovecot/libdovecot.so.0(+0x43e8e) [0x7fa49c7e4e8e] -> /usr/lib/dovecot/libdovecot.so.0(i_error+0) [0x7fa49c7bc784] -> /usr/lib/dovecot/libdovecot.so.0(+0x542f0) [0x7fa49c7f52f0] -> /usr/lib/dovecot/libdovecot.so.0(+0x40fe5) [0x7fa49c7e1fe5] -> /usr/lib/dovecot/libdovecot.so.0(buffer_get_space_unsafe+0x6b) [0x7fa49c7e297b] -> /usr/lib/dovecot/libdovecot.so.0(charset_to_utf8+0xe7) [0x7fa49c7d9867] -> /usr/lib/dovecot/libdovecot.so.0(message_decoder_decode_next_block+0x3b8) [0x7fa49c7ce9d8] -> /usr/lib/dovecot/modules/lib20_fts_plugin.so(fts_build_mail+0x194) [0x7fa49af6dc34] -> /usr/lib/dovecot/modules/lib20_fts_plugin.so(+0xc570) [0x7fa49af72570] -> dovecot/indexer-worker() [0x402544] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x36) [0x7fa49c7f1b96] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xa7) [0x7fa49c7f2827] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x28) [0x7fa49c7f15a8] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7fa49c7de2c3] -> dovecot/indexer-worker(main+0xe2) [0x402002] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd) [0x7fa49c438ead] -> dovecot/indexer-worker() [0x4020a1] Jul 27 19:01:00 mx2 dovecot: indexer: Error: Indexer worker disconnected, discarding 1 requests for cxx@crxx.fr Jul 27 19:01:00 mx2 dovecot: imap(cxx@crxx.fr): Error: indexer failed to index mailbox INBOX Jul 27 19:01:00 mx2 dovecot: indexer-worker(cxx@crxx): Fatal: master: service(indexer-worker): child 9582 returned error 83 (Out of memory (service indexer-worker { vsz_limit=256 MB }, you may need to increase it))
Hope this helps !
On 28.7.2012, at 19.09, Matthew Powell wrote:
This looks very much like an issue I've been having with fts-lucene. Indexing works (or at least completes without errors) in 2.1.7, but runs out of memory in 2.1.8.
doveadm -v index -u username '*' crashes with:
doveadm(username): Fatal: pool_system_realloc(536870912): Out of memory .. I've posted an example message that triggers the crash here: https://www.atom.net/dovecot/testcase1.eml. That's a very contrived test case, but I've encountered the same behaviour with a real message.
Thanks, fixed: http://hg.dovecot.org/dovecot-2.1/rev/cbd2b321a68f
Le 28/07/2012 18:34, Timo Sirainen a écrit :
On 28.7.2012, at 19.09, Matthew Powell wrote:
This looks very much like an issue I've been having with fts-lucene. Indexing works (or at least completes without errors) in 2.1.7, but runs out of memory in 2.1.8.
doveadm -v index -u username '*' crashes with:
doveadm(username): Fatal: pool_system_realloc(536870912): Out of memory .. I've posted an example message that triggers the crash here: https://www.atom.net/dovecot/testcase1.eml. That's a very contrived test case, but I've encountered the same behaviour with a real message. Thanks, fixed: http://hg.dovecot.org/dovecot-2.1/rev/cbd2b321a68f
Thanks Timo, it seems ok now with memory problem, but an other error shows up:
doveadm -v index -u clxx@spamguard.fr INBOX doveadm(clxx@spamguard.fr): Info: INBOX: Caching mails seq=1..59363 21500/59363doveadm(clxx@spamguard.fr): Error: fts_solr: Invalid XML input at line 1: mismatched tag doveadm(clxx@spamguard.fr): Panic: file solr-connection.c: line 545 (solr_connection_post_more): assertion failed: (maxfd >= 0) doveadm(clxx@spamguard.fr): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x43d9a) [0x7f0fbaa87d9a] -> /usr/lib/dovecot/libdovecot.so.0(default_fatal_handler+0x2a) [0x7f0fbaa87e5a] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f0fbaa5f62a] -> /usr/lib/dovecot/modules/lib21_fts_solr_plugin.so(solr_connection_post_more+0x249) [0x7f0fb8bef899] -> /usr/lib/dovecot/modules/lib21_fts_solr_plugin.so(+0x4a87) [0x7f0fb8beca87] -> /usr/lib/dovecot/modules/lib20_fts_plugin.so(fts_build_mail+0x339) [0x7f0fb9210dd9] -> /usr/lib/dovecot/modules/lib20_fts_plugin.so(+0xc570) [0x7f0fb9215570] -> doveadm() [0x412ce1] -> doveadm() [0x40fbd2] -> doveadm() [0x4105db] -> doveadm(doveadm_mail_try_run+0x161) [0x410a41] -> doveadm(main+0x375) [0x40f7e5] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd) [0x7f0fba6dbead] -> doveadm() [0x40f9d1] Aborted
It doesnt seems happened too often, but I've some mailboxes that cant be indexed
On 29.7.2012, at 2.20, tonio@starbridge.org wrote:
it seems ok now with memory problem, but an other error shows up:
doveadm -v index -u clxx@spamguard.fr INBOX doveadm(clxx@spamguard.fr): Info: INBOX: Caching mails seq=1..59363 21500/59363doveadm(clxx@spamguard.fr): Error: fts_solr: Invalid XML input at line 1: mismatched tag
No idea. You can reproduce this? What does it log with this patch? http://hg.dovecot.org/dovecot-2.1/rev/817b69b2b21f
doveadm(clxx@spamguard.fr): Panic: file solr-connection.c: line 545 (solr_connection_post_more): assertion failed: (maxfd >= 0)
I guess related to the previous error, but I'm not really sure why it happens either.
Le 31/07/2012 21:04, Timo Sirainen a écrit :
On 29.7.2012, at 2.20, tonio@starbridge.org wrote:
it seems ok now with memory problem, but an other error shows up:
doveadm -v index -u clxx@spamguard.fr INBOX doveadm(clxx@spamguard.fr): Info: INBOX: Caching mails seq=1..59363 21500/59363doveadm(clxx@spamguard.fr): Error: fts_solr: Invalid XML input at line 1: mismatched tag No idea. You can reproduce this? What does it log with this patch? http://hg.dovecot.org/dovecot-2.1/rev/817b69b2b21f
It happens every time on the same mailboxes (very few) around the same uid number (I think I can find the exact uid with strace and send the email message to you if it helps)
catalina.out show this at this time:
INFO: {} 0 1 31 juil. 2012 21:19:56 org.apache.solr.common.SolrException log GRAVE: org.apache.solr.common.SolrException: Illegal character ((CTRL-CHAR, code 4)) at [row,col {unknown-source}]: [533,500] at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:81) at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:58) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376) at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source) Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Illegal character ((CTRL-CHAR, code 4)) at [row,col {unknown-source}]: [533,500] at com.ctc.wstx.sr.StreamScanner.throwInvalidSpace(StreamScanner.java:675) at com.ctc.wstx.sr.BasicStreamReader.readTextSecondary(BasicStreamReader.java:4668) at com.ctc.wstx.sr.BasicStreamReader.readCoalescedText(BasicStreamReader.java:4126) at com.ctc.wstx.sr.BasicStreamReader.finishToken(BasicStreamReader.java:3701) at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3649) at com.ctc.wstx.sr.BasicStreamReader.getText(BasicStreamReader.java:809) at org.apache.solr.handler.XMLLoader.readDoc(XMLLoader.java:315) at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:156) at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:79) ... 17 more
31 juil. 2012 21:19:56 org.apache.solr.core.SolrCore execute INFO: [] webapp=/solr path=/update params={} status=400 QTime=1
After a quick google search , it seems related to invalid Control Character sent to SOLR.
I've applied your last patch and the message is now: Error: fts_solr: Invalid XML input at 4:113: mismatched tag (near:
<html><head><title>Apache Tomcat/6.0.35 - Rapport d'erreur</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white) doveadm(xx@xx): Panic: file solr-connection.c: line 547 (solr_connection_post_more): assertion failed: (maxfd >= 0) doveadm(xx@xx): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x43d9a) [0x7fadd7e1dd9a] -> /usr/lib/dovecot/libdovecot.so.0(default_fatal_handler+0x2a) [0x7fadd7e1de5a] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7fadd7df562a] -> /usr/lib/dovecot/modules/lib21_fts_solr_plugin.so(solr_connection_post_more+0x249) [0x7fadd5f84929] -> /usr/lib/dovecot/modules/lib21_fts_solr_plugin.so(+0x4af7) [0x7fadd5f81af7] -> /usr/lib/dovecot/modules/lib20_fts_plugin.so(fts_build_mail+0x3bd) [0x7fadd65a6e5d] -> /usr/lib/dovecot/modules/lib20_fts_plugin.so(+0xc570) [0x7fadd65ab570] -> doveadm() [0x412ce1] -> doveadm() [0x40fbd2] -> doveadm() [0x4105db] -> doveadm(doveadm_mail_try_run+0x161) [0x410a41] -> doveadm(main+0x375) [0x40f7e5] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd) [0x7fadd7a71ead] -> doveadm() [0x40f9d1] Abandon
and catalina.out:
GRAVE: org.apache.solr.common.SolrException: Illegal character ((CTRL-CHAR, code 4)) at [row,col {unknown-source}]: [533,500] at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:81) at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:58) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376) at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source) Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Illegal character ((CTRL-CHAR, code 4)) at [row,col {unknown-source}]: [533,500] at com.ctc.wstx.sr.StreamScanner.throwInvalidSpace(StreamScanner.java:675) at com.ctc.wstx.sr.BasicStreamReader.readTextSecondary(BasicStreamReader.java:4668) at com.ctc.wstx.sr.BasicStreamReader.readCoalescedText(BasicStreamReader.java:4126) at com.ctc.wstx.sr.BasicStreamReader.finishToken(BasicStreamReader.java:3701) at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3649) at com.ctc.wstx.sr.BasicStreamReader.getText(BasicStreamReader.java:809) at org.apache.solr.handler.XMLLoader.readDoc(XMLLoader.java:315) at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:156) at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:79) ... 17 more
31 juil. 2012 21:30:25 org.apache.solr.core.SolrCore execute INFO: [] webapp=/solr path=/update params={} status=400 QTime=1
doveadm(clxx@spamguard.fr): Panic: file solr-connection.c: line 545 (solr_connection_post_more): assertion failed: (maxfd >= 0) I guess related to the previous error, but I'm not really sure why it happens either.
thanks again for your help
Best Regards, Tonio Buonaguidi
On 31.7.2012, at 22.46, tonio@starbridge.org wrote:
21500/59363doveadm(clxx@spamguard.fr): Error: fts_solr: Invalid XML input at line 1: mismatched tag No idea. You can reproduce this? What does it log with this patch? http://hg.dovecot.org/dovecot-2.1/rev/817b69b2b21f
It happens every time on the same mailboxes (very few) around the same uid number (I think I can find the exact uid with strace and send the email message to you if it helps)
catalina.out show this at this time:
INFO: {} 0 1 31 juil. 2012 21:19:56 org.apache.solr.common.SolrException log GRAVE: org.apache.solr.common.SolrException: Illegal character ((CTRL-CHAR, code 4)) .. After a quick google search , it seems related to invalid Control Character sent to SOLR.
So it seems, but Dovecot already has code to filter out all control characters when sending data to Solr. I just looked through the source and did a few tests and I couldn't get it to send a control char to Solr.
I've applied your last patch and the message is now: Error: fts_solr: Invalid XML input at 4:113: mismatched tag (near:
<html><head><title>Apache Tomcat/6.0.35 - Rapport d'erreur</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white)
I don't get this either. Instead I get a clean error (if I explicitly change the code to allow control chars):
Jul 31 23:41:14 indexer-worker(tss 16345 ): Error: fts_solr: Indexing failed: 400 Illegal character ((CTRL-CHAR, code 4)) at [row,col {unknown-source}]: [858,254]
participants (3)
-
Matthew Powell
-
Timo Sirainen
-
tonio@starbridge.org