bug in indexer/indexer-worker
Infoomatic
infoomatic at gmx.at
Tue Jun 16 12:07:26 UTC 2015
Hi,
I have already mentioned this in http://www.dovecot.org/pipermail/dovecot/2014-November/098592.html
I could reproduce the errors above in a self-compiled v2.2.18 and the prebuilt packages from xi.rename-it.nl (in addition to version 2.2.15 mentioned in the link)
The problem occurs when enabling fts_tika in the plugins (tried tika 1.6, 1.7 and 1.8). I tried to move a folder of my mailbox with about 2000 mails to my server (no users, modern hardware).
At some point I get an error and from this time on dovecot keeps repeating the last lines with every mail that comes in ... see [1]
I then get kernel syslog messages like in [2]. when I try to index all users (had another testuser) mailboxes with "doveadm index" I get the errors of [3].
The mailfolder does contain mails with attachments of all sorts, videos, office documents etc. When disabling fts_tika it works. dovecot -n output is [4]
Could someone of the devs please have a look?
best regards,
infoomatic
[1] Then comes the panic which produces loads of errormessages below the "Raw backtrace" part:
Jun 16 10:11:08 testhost dovecot: indexer-worker(user1): Warning: I/O leak: 0x7f40b55c39d0 (line 411, fd 20)
Jun 16 10:11:08 testhost dovecot: indexer-worker(user1): Warning: Timeout leak: 0x7f40b55c3780 (line 325)
Jun 16 10:11:08 testhost dovecot: indexer-worker(user1): Panic: file ioloop.c: line 39 (io_add_file): assertion failed: (callback != NULL)
Jun 16 10:11:08 testhost dovecot: indexer-worker(user1): Error: Raw backtrace: /opt/dovecot/lib/dovecot/libdovecot.so.0(+0x78320) [0x7f40b55f4320] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(+0x783fe) [0x7f40b55f43fe] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f40b55a3b25] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(+0x897d0) [0x7f40b56057d0] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(io_loop_move_io+0x3e) [0x7f40b560643e] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(connection_switch_ioloop+0x14) [0x7f40b55f21d4] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(http_client_switch_ioloop+0x28) [0x7f40b55c8148] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(+0x44536) [0x7f40b55c0536] -> /opt/dovecot/lib/dovecot/lib21_fts_solr_plugin.so(solr_connection_post_more+0x49) [0x7f40b108d469] -> /opt/dovecot/lib/dovecot/lib21_fts_solr_plugin.so(+0x3ac9) [0x7f40b1089ac9] -> /opt/dovecot/lib/dovecot/lib21_fts_solr_plugin.so(+0x3b6d) [0x7f40b1089b6d] -> /opt/dovecot/lib/dovecot/lib20_fts_plugin.so(+0x86ec) [0x7f40b495c6ec] -> /opt/dovecot/lib/dovecot/lib20_fts_plugin.so(fts_backend_update_deinit+0x23) [0x7f40b495c723] -> /opt/dovecot/lib/dovecot/lib20_fts_plugin.so(+0xe5cc) [0x7f40b49625cc] -> /opt/dovecot/lib/dovecot/lib20_fts_plugin.so(+0xf451) [0x7f40b4963451] -> /opt/dovecot/lib/dovecot/lib10_quota_plugin.so(+0xb454) [0x7f40b4b97454] -> /opt/dovecot/lib/dovecot/lib01_acl_plugin.so(+0xcfea) [0x7f40b4daafea] -> /opt/dovecot/lib/dovecot/libdovecot-storage.so.0(mailbox_transaction_commit_get_changes+0x41) [0x7f40b58a64f1] -> /opt/dovecot/lib/dovecot/libdovecot-storage.so.0(mailbox_transaction_commit+0xe) [0x7f40b58a658e] -> dovecot/indexer-worker() [0x40250c] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x4c) [0x7f40b560615c] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0xbb) [0x7f40b56070ab] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x9) [0x7f40b56061c9] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(io_loop_run+0x38) [0x7f40b5606248] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f40b55a9093] -> dovecot/indexer-worker(main+0xe3) [0x401f03] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f40b51d8ec5] -> dovecot/indexer-worker() [0x401fc2]
Jun 16 10:11:08 testhost dovecot: indexer: Error: Indexer worker disconnected, discarding 2 requests for user1
Jun 16 10:11:08 testhost dovecot: indexer-worker(user1): Fatal: master: service(indexer-worker): child 2066 killed with signal 6 (core dumped)
Jun 16 10:11:09 testhost dovecot: indexer-worker(user1): Warning: I/O leak: 0x7f25bc1689d0 (line 120, fd 23)
Jun 16 10:11:09 testhost dovecot: indexer-worker(user1): Warning: Timeout leak: 0x7f25bc168780 (line 325)
Jun 16 10:11:09 testhost dovecot: indexer: Error: Indexer worker disconnected, discarding 2 requests for user1
Jun 16 10:11:09 testhost dovecot: indexer-worker(user1): Fatal: master: service(indexer-worker): child 2124 killed with signal 11 (core dumped)
Jun 16 10:11:09 testhost dovecot: indexer-worker(user1): Warning: I/O leak: 0x7f6cabb149d0 (line 120, fd 23)
Jun 16 10:11:09 testhost dovecot: indexer-worker(user1): Warning: Timeout leak: 0x7f6cabb14780 (line 325)
Jun 16 10:11:09 testhost dovecot: indexer: Error: Indexer worker disconnected, discarding 2 requests for user1
Jun 16 10:11:09 testhost dovecot: indexer-worker(user1): Fatal: master: service(indexer-worker): child 2125 killed with signal 11 (core dumped)
[2] kernel syslog:
[Tue Jun 16 09:51:15 2015] indexer-worker[7592]: segfault at 8 ip 00007f066e8c8c27 sp 00007fff36a038b0 error 4 in libdovecot.so.0.0.0[7f066e832000+e7000]
[Tue Jun 16 09:51:16 2015] indexer-worker[7594]: segfault at 8 ip 00007f702671ac27 sp 00007ffc6e134840 error 4 in libdovecot.so.0.0.0[7f7026684000+e7000]
[Tue Jun 16 09:51:16 2015] indexer-worker[7596]: segfault at 20 ip 00007fb8a5af2c47 sp 00007fff0a344780 error 4 in libdovecot.so.0.0.0[7fb8a5a69000+e7000]
[Tue Jun 16 09:51:17 2015] indexer-worker[7598]: segfault at 20 ip 00007f5834b6ac47 sp 00007ffd54f35c00 error 4 in libdovecot.so.0.0.0[7f5834ae1000+e7000]
[Tue Jun 16 09:51:18 2015] indexer-worker[7600]: segfault at 20 ip 00007f5b2f6fac47 sp 00007fff1a697690 error 4 in libdovecot.so.0.0.0[7f5b2f671000+e7000]
[Tue Jun 16 09:51:19 2015] indexer-worker[7602]: segfault at 20 ip 00007fd6084ddc47 sp 00007ffdb4495af0 error 4 in libdovecot.so.0.0.0[7fd608454000+e7000]
[Tue Jun 16 09:51:20 2015] indexer-worker[7604]: segfault at 20 ip 00007f7049789c47 sp 00007ffe71e4bdd0 error 4 in libdovecot.so.0.0.0[7f7049700000+e7000]
[Tue Jun 16 09:51:20 2015] indexer-worker[7606]: segfault at 20 ip 00007f771d54dc47 sp 00007ffe01c6ff80 error 4 in libdovecot.so.0.0.0[7f771d4c4000+e7000]
[Tue Jun 16 09:51:21 2015] indexer-worker[7608]: segfault at 20 ip 00007fc19d482c47 sp 00007ffc9a0b0280 error 4 in libdovecot.so.0.0.0[7fc19d3f9000+e7000]
[Tue Jun 16 09:51:22 2015] indexer-worker[7610]: segfault at 29 ip 00007fa14df25c2b sp 00007ffeb246e5f0 error 4 in libdovecot.so.0.0.0[7fa14de8f000+e7000]
[Tue Jun 16 09:51:23 2015] indexer-worker[7612]: segfault at 8 ip 00007fe8e41f2c27 sp 00007ffc700e2170 error 4 in libdovecot.so.0.0.0[7fe8e415c000+e7000]
[Tue Jun 16 09:51:24 2015] indexer-worker[7614]: segfault at 8 ip 00007ff9a0c76c27 sp 00007fffecd44c90 error 4 in libdovecot.so.0.0.0[7ff9a0be0000+e7000]
[Tue Jun 16 09:51:25 2015] indexer-worker[7616]: segfault at 8 ip 00007fd27867dc27 sp 00007ffedd8407f0 error 4 in libdovecot.so.0.0.0[7fd2785e7000+e7000]
[Tue Jun 16 09:51:25 2015] indexer-worker[7618]: segfault at 8 ip 00007f94f8753c27 sp 00007fff56cc5ea0 error 4 in libdovecot.so.0.0.0[7f94f86bd000+e7000]
[3] errors from "doveadm index":
/opt/dovecot/bin/doveadm index -A '*'
doveadm(user1): Warning: I/O leak: 0x7f0e072519d0 (line 120, fd 27)
doveadm(user1): Warning: Timeout leak: 0x7f0e07251780 (line 325)
Segmentation fault (core dumped)
/opt/dovecot/bin/doveadm index -u user1 '*'
doveadm(user1): Warning: I/O leak: 0x7f99b4fba9d0 (line 411, fd 14)
doveadm(user1): Warning: Timeout leak: 0x7f99b4fba780 (line 325)
doveadm(user1): Fatal: pool_system_realloc(17179869184): Out of memory
doveadm(user1): Error: Raw backtrace: /opt/dovecot/lib/dovecot/libdovecot.so.0(+0x78320) [0x7f99b4feb320] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(default_fatal_handler+0x2a) [0x7f99b4feb38a] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f99b4f9ac7f] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(+0x8f3a3) [0x7f99b50023a3] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(+0x7472d) [0x7f99b4fe772d] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(buffer_get_space_unsafe+0x5f) [0x7f99b4fe7f5f] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(io_loop_handle_add+0x24) [0x7f99b4ffdd94] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(+0x89761) [0x7f99b4ffc761] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(io_loop_move_io+0x3e) [0x7f99b4ffd43e] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(connection_switch_ioloop+0x14) [0x7f99b4fe91d4] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(http_client_switch_ioloop+0x28) [0x7f99b4fbf148] -> /opt/dovecot/lib/dovecot/libdovecot.so.0(+0x44536) [0x7f99b4fb7536] -> /opt/dovecot/lib/dovecot/lib21_fts_solr_plugin.so(solr_connection_post_more+0x49) [0x7f99b0c9d469] -> /opt/dovecot/lib/dovecot/lib21_fts_solr_plugin.so(+0x373f) [0x7f99b0c9973f] -> /opt/dovecot/lib/dovecot/lib20_fts_plugin.so(+0x91e8) [0x7f99b43541e8] -> /opt/dovecot/lib/dovecot/lib20_fts_plugin.so(+0x95f0) [0x7f99b43545f0] -> /opt/dovecot/lib/dovecot/lib20_fts_plugin.so(fts_build_mail+0x714) [0x7f99b4354d34] -> /opt/dovecot/lib/dovecot/lib20_fts_plugin.so(+0xf17e) [0x7f99b435a17e] -> /opt/dovecot/lib/dovecot/libdovecot-storage.so.0(mail_precache+0x19) [0x7f99b5294e89] -> /opt/dovecot/bin/doveadm() [0x423211] -> /opt/dovecot/bin/doveadm() [0x41ecc6] -> /opt/dovecot/bin/doveadm(doveadm_mail_try_run+0x27f) [0x41fb8f] -> /opt/dovecot/bin/doveadm(main+0x38f) [0x412a9f] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f99b4bcfec5] -> /opt/dovecot/bin/doveadm() [0x412b99]
[4] dovecot -n
# 2.2.18: /opt/dovecot/etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.8 (0c4ae064f307+)
# OS: Linux 3.13.0-52-generic x86_64 Ubuntu 14.04.2 LTS ext4
auth_username_format = %n
auth_verbose = yes
disable_plaintext_auth = no
imap_idle_notify_interval = 5 mins
mail_gid = vmail
mail_home = /var/lib/vmail/home/%d/%u
mail_location = mdbox:/var/lib/vmail/mail/%d/%u
mail_plugins = fts fts_solr zlib acl quota zlib fts fts_solr acl
mail_uid = vmail
mailbox_idle_check_interval = 1 mins
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 index ihave duplicate imapflags notify
mdbox_rotate_size = 32 M
namespace {
list = children
location = mdbox:/var/lib/vmail/mail/%d/%%u
prefix = shared/%%u/
separator = /
subscriptions = no
type = shared
}
namespace inbox {
inbox = yes
location =
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 = /
type = private
}
passdb {
args = /opt/dovecot/etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
plugin {
acl = vfile
acl_defaults_from_inbox = yes
acl_shared_dict = file:/var/lib/vmail/shared-mailboxes
fts = solr
fts_autoindex = yes
fts_solr = url=http://localhost:8983/solr/ break-imap-search
fts_tika = http://localhost:8081/tika
quota = dict:Quota::file:%h/dovecot-quota
quota_rule = *:storage=1G
quota_warning = storage=95%% quota-warning 95 %u
quota_warning2 = storage=80%% quota-warning 80 %u
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
sieve_extensions = +notify +imapflags
zlib_save = gz
zlib_save_level = 9
}
protocols = imap sieve
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
unix_listener auth-userdb {
group = vmail
user = vmail
}
}
service imap-login {
inet_listener imaps {
port = 0
}
}
service managesieve-login {
inet_listener sieve_deprecated {
port = 2000
}
}
service pop3-login {
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
port = 0
}
}
ssl = required
ssl_cert = </etc/ssl/testhost/testhost.crt
ssl_cipher_list = EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
ssl_key = </etc/ssl/testhost/testhost.key
ssl_prefer_server_ciphers = yes
ssl_protocols = !SSLv2 !SSLv3
userdb {
args = /opt/dovecot/etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
protocol lda {
mail_plugins = fts fts_solr zlib sieve acl
}
protocol imap {
mail_plugins = fts fts_solr zlib acl quota imap_acl imap_quota
}
protocol sieve {
mail_plugins = fts fts_solr
}
More information about the dovecot
mailing list