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
  }
}

Reply via email to