Using Dovecot 2.2.13 with Tika 1.5 on Centos 5 64bit
Tika is throwing an exception for some reason, which seems to be causing Dovecot's indexer to segfault. I'm using mdbox/gzipped compressed mail and private indexes for the shared folder. I'm importing mail via formail/dovecot-lda: formail -s /usr/libexec/dovecot/dovecot-lda -d admin -m Public/TestSubFolder < /tmp/Inbox.mbox dovecot -n and the GDB backtrace are attached. # find /var/mail/ -maxdepth 2 /var/mail/_public /var/mail/_public/dovecot.mailbox.log /var/mail/_public/dovecot-uidvalidity /var/mail/_public/dovecot-uidvalidity.53ecade1 /var/mail/_public/storage /var/mail/_public/subscriptions /var/mail/_public/mailboxes /var/mail/admin /var/mail/admin/dovecot-uidvalidity.53ecade2 /var/mail/admin/dovecot.mailbox.log /var/mail/admin/public /var/mail/admin/dovecot-uidvalidity /var/mail/admin/storage /var/mail/admin/subscriptions /var/mail/admin/mailboxes
Core was generated by `dovecot/indexer-worker'. Program terminated with signal 11, Segmentation fault. #0 i_stream_ref (stream=0x0) at istream.c:42 42 istream.c: No such file or directory. in istream.c (gdb) bt full #0 i_stream_ref (stream=0x0) at istream.c:42 No locals. #1 0x00007f13f5497ed0 in fts_tika_parser_response (response=0x7fffd5910230, parser=0x660460) at fts-parser-tika.c:87 __FUNCTION__ = "fts_tika_parser_response" #2 0x00007f13f646e07d in http_client_request_callback (req=0x6690d0, response=0xc8) at http-client-request.c:767 callback = 0x7f13f5497e00 <fts_tika_parser_response> orig_attempts = 0 #3 0x00007f13f646f5f2 in http_client_connection_return_response (conn=0x66c780, req=0x6690d0, response=0x7fffd5910230) at http-client-connection.c:456 payload = <value optimized out> retrying = <value optimized out> __FUNCTION__ = "http_client_connection_return_response" #4 0x00007f13f6470b12 in http_client_connection_input (_conn=<value optimized out>) at http-client-connection.c:640 aborted = false conn = 0x0 response = {version_major = 1 '\001', version_minor = 1 '\001', status = 200, reason = 0x672380 "OK", location = 0x0, date = 1408020040, retry_after = -1, header = 0x671fe0, payload = 0x0, headers = {arr = {buffer = 0x671ff0, element_size = 24}, v = 0x671ff0, v_modifiable = 0x671ff0}, connection_options = {arr = {buffer = 0x672328, element_size = 8}, v = 0x672328, v_modifiable = 0x672328}, connection_close = 0} req = 0x6690d0 finished = 0 ret = <value optimized out> error = <value optimized out> payload_type = <value optimized out> __FUNCTION__ = "http_client_connection_input" #5 0x00007f13f64aa0bc in io_loop_call_io (io=0x66bad0) at ioloop.c:441 ioloop = 0x66cd30 t_id = 6 __FUNCTION__ = "io_loop_call_io" #6 0x00007f13f64ab7dd in io_loop_handler_run_internal (ioloop=<value optimized out>) at ioloop-epoll.c:220 ctx = <value optimized out> event = 0x66bd60 list = 0x66bb30 io = 0x0 tv = {tv_sec = 2147483, tv_usec = 0} events_count = <value optimized out> msecs = <value optimized out> ret = 1 i = 0 call = 200 __FUNCTION__ = "io_loop_handler_run_internal" #7 0x00007f13f64aa159 in io_loop_handler_run (ioloop=0x0) at ioloop.c:488 No locals. #8 0x00007f13f64aa1d8 in io_loop_run (ioloop=0x66cd30) at ioloop.c:465 __FUNCTION__ = "io_loop_run" #9 0x00007f13f646e58d in http_client_request_continue_payload (_req=0x660490, data=0x0, size=0) at http-client-request.c:496 prev_ioloop = 0x60d720 req = 0x6690d0 conn = 0x66c780 client = 0x65ffc0 ret = <value optimized out> __FUNCTION__ = "http_client_request_continue_payload" #10 0x00007f13f5497acc in fts_parser_tika_more (_parser=0x660460, block=0x660460) at fts-parser-tika.c:161 data = <value optimized out> size = <value optimized out> ret = <value optimized out> __FUNCTION__ = "fts_parser_tika_more" #11 0x00007f13f54969d7 in fts_parser_more (parser=0x0, block=0x7fffd5910440) at fts-parser.c:67 No locals. #12 0x00007f13f5494d2f in fts_body_parser_finish (ctx=0x7fffd59104b0) at fts-build-mail.c:256 block = {part = 0x0, hdr = 0x0, data = 0x0, size = 0} ret = <value optimized out> #13 0x00007f13f549530d in fts_build_mail_real (update_ctx=0x649b40, mail=0x63cd40) at fts-build-mail.c:361 __FUNCTION__ = "fts_build_mail_real" #14 fts_build_mail (update_ctx=0x649b40, mail=0x63cd40) at fts-build-mail.c:386 ---Type <return> to continue, or q <return> to quit--- _data_stack_cur_id = 5 ret = <value optimized out> #15 0x00007f13f549a404 in fts_mail_index (_mail=0x63cd40) at fts-storage.c:451 No locals. #16 fts_mail_precache (_mail=0x63cd40) at fts-storage.c:468 _data_stack_cur_id = 4 fmail = 0x6395b0 #17 0x0000000000402522 in master_connection_input () No symbol table info available. #18 0x00007f13f64aa0bc in io_loop_call_io (io=0x612000) at ioloop.c:441 ioloop = 0x60d720 t_id = 2 __FUNCTION__ = "io_loop_call_io" #19 0x00007f13f64ab7dd in io_loop_handler_run_internal (ioloop=<value optimized out>) at ioloop-epoll.c:220 ctx = <value optimized out> event = 0x6113b0 list = 0x612060 io = 0x0 tv = {tv_sec = 2147483, tv_usec = 0} events_count = <value optimized out> msecs = <value optimized out> ret = 1 i = 0 call = 200 __FUNCTION__ = "io_loop_handler_run_internal" #20 0x00007f13f64aa159 in io_loop_handler_run (ioloop=0x0) at ioloop.c:488 No locals. #21 0x00007f13f64aa1d8 in io_loop_run (ioloop=0x60d720) at ioloop.c:465 __FUNCTION__ = "io_loop_run" #22 0x00007f13f6459293 in master_service_run (service=0x60d5b0, callback=0x660460) at master-service.c:566 No locals. #23 0x0000000000401f8b in main ()
# 2.2.13: /etc/dovecot/dovecot.conf # OS: Linux 3.0.74-3 x86_64 Cobra release 5.9.5 (Final) ext3 auth_master_user_separator = ^ auth_verbose = yes first_valid_gid = 12 first_valid_uid = 97 hostname = mail.example.com last_valid_gid = 12 last_valid_uid = 97 lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes mail_location = mdbox:/var/mail/%n mail_plugins = " zlib fts fts_solr quota mailbox_alias notify mail_log" mdbox_rotate_size = 100 M namespace { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Junk/Ham { auto = subscribe } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Trash { auto = subscribe special_use = \Trash } prefix = separator = / type = private } namespace { location = mdbox:/var/mail/_public:INDEXPVT=/var/mail/%n/public prefix = Public/ separator = / subscriptions = yes type = public } passdb { args = /etc/dovecot/passdb.conf driver = sql } passdb { args = /etc/dovecot/passdb-master.conf driver = sql master = yes } plugin { fts = solr fts_autoindex = yes fts_index_timeout = 45 fts_solr = url=http://localhost:8983/solr/ fts_tika = http://localhost:9998/tika/ mail_log_events = delete expunge mailbox_delete mail_log_fields = box from subject size mailbox_alias_new = Sent Messages mailbox_alias_old = Sent quota = dirsize:User quota quota_rule = *:storage=0 sieve = /var/mail/_sieve/%n.sieve sieve_after = /var/mail/_sieve/__post.sieve sieve_before = /var/mail/_sieve/__pre.sieve sieve_extensions = +editheader +vnd.dovecot.debug +vnd.dovecot.duplicate } postmaster_address = postmas...@mailor.de protocols = lmtp imap service auth { unix_listener auth-userdb { mode = 0777 } } service decode2text { executable = script /usr/libexec/dovecot/decode2text.sh unix_listener decode2text { mode = 0666 } user = dovecot } service imap-lastlogin { executable = script-login /usr/libexec/dovecot/last-login-update user = mail } service imap { executable = imap } service lmtp { process_min_avail = 10 unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } } ssl = required ssl_cert = </etc/pki/tls/certs/mailor.de.crt ssl_key = </etc/pki/tls/private/mailor.de.key userdb { args = /etc/dovecot/userdb.conf default_fields = uid=97 gid=12 home=/var/mail/%n domain=mailor.de driver = sql } protocol lda { mail_plugins = " zlib fts fts_solr quota mailbox_alias notify mail_log sieve" sendmail_path = /usr/sbin/sendmail.msmtp userdb { args = /etc/dovecot/userdb-receive.conf default_fields = uid=97 gid=12 home=/var/mail/%n driver = sql name = result_failure = return-fail } } protocol lmtp { mail_plugins = " zlib fts fts_solr quota mailbox_alias notify mail_log sieve" sendmail_path = /usr/sbin/sendmail.msmtp userdb { args = /etc/dovecot/userdb-receive.conf default_fields = uid=97 gid=12 home=/var/mail/%n driver = sql name = result_failure = return-fail } } protocol imap { mail_plugins = " zlib fts fts_solr quota mailbox_alias notify mail_log imap_zlib" userdb { args = /etc/dovecot/userdb-view.conf default_fields = uid=97 gid=12 home=/var/mail/%n driver = sql name = result_failure = return-fail } }