Hi,
after the upgrade to dovecot 2.3.15 the Panic: indexer-worker error is still present. I don't know if is related to searching in a Virtual folder (look for my previous email on list with subject "Panic on indexer-worker and Dovecot stop to search on Solr" for more details).
Here the relevant configuration of FTS plugin:
plugin { fts = solr fts_autoindex = no fts_autoindex_exclude = \Junk fts_autoindex_exclude2 = \Drafts fts_decoder = decode2text fts_enforced = body fts_index_timeout = 5s fts_solr = url=http://10.0.0.32:8983/solr/dovecot/ [...]
I'm running Dovecot with FTS Solr 7.7, here the log error and the bt full:
Jun 29 13:06:26 Panic: indexer-worker(user1@company.net) session=SLTLmOXFFIy5Ydlu:6BC4HLH+2mBHQwAAxbYlJw: file http-clien t-request.c: line 1240 (http_client_request_send_more): assertion failed: (req->payload_input != NULL) Jun 29 13:06:26 Error: indexer-worker(user1@company.net) session=SLTLmOXFFIy5Ydlu:6BC4HLH+2mBHQwAAxbYlJw: Raw backtrace: /usr/lib64/dovecot/libdovecot.so.0(backtrace_append+0x42) [0x7f7212b36862] -> /usr/lib64/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f7212b3696e] -> /usr/lib64/dovecot/libdovecot.so.0(+0xf50fe) [0x7f7212b440fe] -> /usr/lib64/dovecot/libdovecot.so.0(+0xf51a1) [ 0x7f7212b441a1] -> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7f7212a9460c] -> /usr/lib64/dovecot/libdovecot.so.0(http_client_ request_send_more+0x3dd) [0x7f7212add54d] -> /usr/lib64/dovecot/libdovecot.so.0(http_client_connection_output+0xf1) [0x7f7212ae1ca1] -> /usr/lib64/dovecot/libdovecot.so.0(+0x11e870) [0x7f7212b6d870] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x65) [0x7f 7212b5c425] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x12b) [0x7f7212b5ddab] -> /usr/lib64/dovecot/libdove cot.so.0(io_loop_handler_run+0x59) [0x7f7212b5c529] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x38) [0x7f7212b5c768] -> /usr /lib64/dovecot/libdovecot.so.0(http_client_wait+0xcd) [0x7f7212aeadbd] -> /usr/lib64/dovecot/lib21_fts_solr_plugin.so(solr_connectio n_select+0xe5) [0x7f7210a79265] -> /usr/lib64/dovecot/lib21_fts_solr_plugin.so(+0x4684) [0x7f7210a75684] -> /usr/lib64/dovecot/lib20 _fts_plugin.so(fts_backend_get_last_uid+0x6e) [0x7f7211e1944e] -> /usr/lib64/dovecot/lib20_fts_plugin.so(+0xf9d2) [0x7f7211e1f9d2] -
/usr/lib64/dovecot/lib20_fts_plugin.so(+0x10f56) [0x7f7211e20f56] -> /usr/lib64/dovecot/lib20_virtual_plugin.so(+0x94da) [0x7f7211 a014da] -> /usr/lib64/dovecot/lib20_fts_plugin.so(+0x10ba6) [0x7f7211e20ba6] -> /usr/lib64/dovecot/libdovecot-storage.so.0(mail_prec ache+0x2e) [0x7f7212e48fae] -> dovecot/indexer-worker user1@company.net Virtual/All [0x55559e522bb1] -> /usr/lib 64/dovecot/libdovecot.so.0(io_loop_call_io+0x65) [0x7f7212b5c425] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run_internal +0x12b) [0x7f7212b5ddab] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0x59) [0x7f7212b5c529] -> /usr/lib64/dovecot/libd ovecot.so.0(io_loop_run+0x38) [0x7f7212b5c768] -> /usr/lib64/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f7212ac63c3] -> do vecot/indexer-worker user1@company.net Virtual/All [0x55559e522437] -> /lib64/libc.so.6(__libc_start_main+0xf5 ) [0x7f72126a3555] -> dovecot/indexer-worker user1@company.net Virtual/All [0x55559e5224fa] Jun 29 13:06:26 Fatal: indexer-worker(user1@company.net) session=SLTLmOXFFIy5Ydlu:6BC4HLH+2mBHQwAAxbYlJw: master: service(indexer-worker): child 17223 killed with signal 6 (core dumped)
# gdb /usr/libexec/dovecot/indexer-worker
/var/core/core.indexer-worker.17223
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/...
Reading symbols from /usr/libexec/dovecot/indexer-worker...Reading
symbols from /usr/lib/debug/usr/libexec/dovecot/indexer-worker.debug...done.
done.
[New LWP 17223]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by dovecot/indexer-worker'. Program terminated with signal 6, Aborted. #0 0x00007f72126b7387 in raise () from /lib64/libc.so.6 Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.6-13.el7.x86_64 expat-2.1.0-12.el7.x86_64 glibc-2.17-324.el7_9.x86_64 libgcc-4.8.5-44.el7.x86_64 libzstd-1.5.0-1.el7.x86_64 xz-libs-5.2.2-1.el7.x86_64 zlib-1.2.7-19.el7_9.x86_64 (gdb) bt full #0 0x00007f72126b7387 in raise () from /lib64/libc.so.6 No symbol table info available. #1 0x00007f72126b8a78 in abort () from /lib64/libc.so.6 No symbol table info available. #2 0x00007f7212b440b7 in default_fatal_finish (status=0, type=<optimized out>) at failures.c:459 backtrace = 0x55559eb75970 "/usr/lib64/dovecot/libdovecot.so.0(backtrace_append+0x42) [0x7f7212b36862] -> /usr/lib64/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f7212b3696e] -> /usr/lib64/dovecot/libdovecot.so.0(+0xf50fe) [0"... recursed = 0 #3 fatal_handler_real (ctx=<optimized out>, format=<optimized out>, args=<optimized out>) at failures.c:471 status = 0 #4 0x00007f7212b441a1 in i_internal_fatal_handler (ctx=<optimized out>, format=<optimized out>, args=<optimized out>) at failures.c:866 No locals. #5 0x00007f7212a9460c in i_panic (format=format@entry=0x7f7212b85cf8 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:523 ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0, timestamp_usecs = 0, log_prefix = 0x0, log_prefix_type_pos = 0} args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7ffe7b6e7150, reg_save_area = 0x7ffe7b6e7090}} #6 0x00007f7212add54d in http_client_request_send_more (req=req@entry=0x55559eca9db8, pipelined=pipelined@entry=false) at http-client-request.c:1240 conn = 0x55559ec8b750 cctx = 0x55559ebb63a8 output = 0x55559ecafa70 res = <optimized out> error = <optimized out> offset = <optimized out> __func__ = "http_client_request_send_more" #7 0x00007f7212ae1ca1 in http_client_connection_continue_request (conn=0x55559ec8b750) at http-client-connection.c:1342 tmp_conn = 0x55559ec8b750 count = 1 ret = <optimized out> reqs = <optimized out> req = 0x55559eca9db8 pipelined = false #8 http_client_connection_output (conn=0x55559ec8b750) at http-client-connection.c:1374 output = <optimized out> ret = <optimized out> #9 0x00007f7212b6d870 in stream_send_io (fstream=0x55559ec8cb20) at ostream-file.c:526 ostream = 0x55559ec8cbc0 am = 0x55559ec8cb20 use_cork = true ret = <optimized out> ---Type <return> to continue, or q <return> to quit--- #10 0x00007f7212b5c425 in io_loop_call_io (io=0x55559ec925f0) at ioloop.c:715 ioloop = 0x55559ecaf4d0 t_id = 6 __func__ = "io_loop_call_io" #11 0x00007f7212b5ddab in io_loop_handler_run_internal (ioloop=ioloop@entry=0x55559ecaf4d0) at ioloop-epoll.c:222 ctx = 0x55559ecab870 events = <optimized out> list = 0x55559ec8c8e0 io = <optimized out> tv = {tv_sec = 0, tv_usec = 0} events_count = <optimized out> msecs = <optimized out> ret = 1 i = 0 call = <optimized out> __func__ = "io_loop_handler_run_internal" #12 0x00007f7212b5c529 in io_loop_handler_run (ioloop=ioloop@entry=0x55559ecaf4d0) at ioloop.c:767 __func__ = "io_loop_handler_run" #13 0x00007f7212b5c768 in io_loop_run (ioloop=0x55559ecaf4d0) at ioloop.c:740 __func__ = "io_loop_run" #14 0x00007f7212aeadbd in http_client_wait () at http-client.c:339 prev_ioloop = 0x55559eb7b050 client_ioloop = 0x55559ecaf4d0 prev_client_ioloop = 0x55559eb7b050 __func__ = "http_client_wait" #15 0x00007f7210a79265 in solr_connection_select (conn=0x55559eb8b150, query=<optimized out>, pool=<optimized out>, box_results_r=0x7ffe7b6e7400) at solr-connection.c:211 lctx = {result_pool = 0x55559ec03910, payload = 0x0, io = 0x0, request_status = 0, parser = 0x0, results = 0x0} http_req = 0x55559ecb3b48 url = <optimized out> #16 0x00007f7210a75684 in fts_backend_solr_get_last_uid (_backend=0x55559eb8b090, box=0x55559ebe59a8, last_uid_r=0x7ffe7b6e74a4) at fts-backend-solr.c:238 hdr = {last_indexed_uid = 0, settings_checksum = 0, unused = 0} #17 0x00007f7211e1944e in fts_backend_get_last_uid (backend=<optimized out>, box=box@entry=0x55559ebe59a8, last_uid_r=last_uid_r@entry=0x7ffe7b6e74a4) at fts-api.c:106 hdr = {last_indexed_uid = 2, settings_checksum = 0, unused = 317606002} #18 0x00007f7211e1f9d2 in fts_mailbox_get_last_cached_seq (box=box@entry=0x55559ebe59a8, seq_r=seq_r@entry=0x7ffe7b6e74f4) at fts-storage.c:85 flist = <optimized out> seq1 = 21845 seq2 = 2663132384 last_uid = 21845 ---Type <return> to continue, or q <return> to quit--- #19 0x00007f7211e20f56 in fts_mail_precache_init (_mail=<optimized out>, _mail=<optimized out>) at fts-storage.c:478 ft = 0x55559ec8c820 flist = 0x55559ebca0a0 last_seq = 21845 #20 fts_mail_index (_mail=0x55559ecaed08) at fts-storage.c:501 ft = 0x55559ec8c820 flist = 0x55559ebca0a0 pmail = 0x55559ecaed08 #21 fts_mail_precache (_mail=0x55559ecaed08) at fts-storage.c:562 _data_stack_cur_id = 5 mail = 0x55559ecaed08 fmail = <optimized out> ft = 0x55559ec8c820 ret = 0 __func__ = "fts_mail_precache" #22 0x00007f7211a014da in virtual_mail_precache (mail=<optimized out>) at virtual-mail.c:243 vmail = <optimized out> backend_mail = 0x55559ecaed08 p = <optimized out> #23 0x00007f7211e20ba6 in fts_mail_precache (_mail=0x55559ec027f8) at fts-storage.c:555 mail = 0x55559ec027f8 fmail = 0x55559ec02f70 ft = 0x55559ebff760 ret = 0 __func__ = "fts_mail_precache" #24 0x00007f7212e48fae in mail_precache (mail=0x55559ec027f8) at mail.c:455 _data_stack_cur_id = 4 p = 0x55559ec027f8 ret = <optimized out> #25 0x000055559e522bb1 in index_mailbox_precache (conn=<optimized out>, box=0x55559eb9c498) at master-connection.c:119 counter = 1 max = 93 percentage_sent = 0 storage = <optimized out> status = {messages = 93, recent = 0, unseen = 0, uidvalidity = 1624964785, uidnext = 94, first_unseen_seq = 0, first_recent_uid = 94, last_cached_seq = 0, highest_modseq = 0, highest_pvt_modseq = 0, keywords = 0x0, permanent_flags = 0, flags = 0, permanent_keywords = false, allow_new_keywords = false, nonpermanent_modseqs = false, no_modseq_tracking = false, have_guids = true, have_save_guids = true, have_only_guid128 = false} uids = <optimized out> username = 0x55559eba0e18 "user1@company.net" first_uid = 1 percentage_str = "\261\376\332
"
---Type <return> to continue, or q <return> to quit---
percentage = <optimized out>
error = MAIL_ERROR_NONE
trans = 0x55559ebf1b00
ctx = 0x55559ebf3640
last_uid = 2
ret = 0
index_event = 0x55559ebf3250
box_vname = 0x55559eb9c830 "Virtual/All"
errstr = <optimized out>
search_args = 0x0
mail = 0x55559ec027f8
metadata = {guid = '\000'
Hope can be fixed. Thanks
-- Alessio Cecchi Postmaster @ http://www.qboxmail.it https://www.linkedin.com/in/alessice