Panic: file index-search-result.c: line 132 (index_search_result_update_flags): assertion failed: (result->search_args->args == &search_arg)
Hello dovecot community,
I hope you can help me with the following panic:
Panic: file index-search-result.c: line 132 (index_search_result_update_flags): assertion failed: (result->search_args->args == &search_arg)
Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(backtrace_append+0x46) [0x7f839a045846] -> /usr/lib/dovecot/libdovecot.so.0(backtrace_get+0x22) [0x7f839a045962] -> /usr/lib/dovecot/libdovecot.so.0(+0x10d81b) [0x7f839a05281b] -> /usr/lib/dovecot/libdovecot.so.0(+0x10d8b7) [0x7f839a0528b7] -> /usr/lib/dovecot/libdovecot.so.0(+0x5e2e2) [0x7f8399fa32e2] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0x518a4) [0x7f839a1768a4] -> /usr/lib/dovecot/modules/lib20_virtual_plugin.so(virtual_storage_sync_init+0x274e) [0x7f8399ea4a9e] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_sync_init+0x5c) [0x7f839a192f9c] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_sync+0x39) [0x7f839a193039] -> /usr/lib/dovecot/libdovecot-storage.so.0(index_storage_get_status+0x37) [0x7f839a210467] -> /usr/lib/dovecot/modules/lib20_virtual_plugin.so(+0xc6c5) [0x7f8399e9f6c5] -> /usr/lib/dovecot/modules/lib20_fts_plugin.so(+0x145e2) [0x7f8399ee65e2] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(+0x10cb9) [0x7f8399f31cb9] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_get_status+0x64) [0x7f839a1935a4] -> dovecot/imap(imap_status_get+0x98) [0x55c63c180748] -> dovecot/imap(cmd_status+0x19e) [0x55c63c170a7e] -> dovecot/imap(command_exec+0xa4) [0x55c63c177444] -> dovecot/imap(+0x22392) [0x55c63c175392] -> dovecot/imap(+0x22444) [0x55c63c175444] -> dovecot/imap(client_handle_input+0x1bd) [0x55c63c17589d] -> dovecot/imap(client_input+0x74) [0x55c63c175e64] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x6d) [0x7f839a06903d] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x13a) [0x7f839a06a7aa] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x54) [0x7f839a0690e4] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40) [0x7f839a0692a0] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x17) [0x7f8399fd9ad7] -> dovecot/imap(main+0x570) [0x55c63c166d20] -> /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f8399c29d90] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7f8399c29e40] -> dovecot/imap(_start+0x25) [0x55c63c166de5]
Fatal: master: service(imap): child 793983 killed with signal 6 (core dumped)
Happening on ubuntu 22.04, dovecot 2.3.21 from this ubuntu ppa
dovecot-core:amd64 1:2.3.21-0a~jammy dovecot-dev:amd64 1:2.3.21-0a~jammy dovecot-imapd:amd64 1:2.3.21-0a~jammy dovecot-ldap:amd64 1:2.3.21-0a~jammy dovecot-lmtpd:amd64 1:2.3.21-0a~jammy dovecot-sieve:amd64 1:2.3.21-0a~jammy dovecot-solr:amd64 1:2.3.21-0a~jammy
I have this virtual mailbox configured:
namespace { prefix = _/ separator = / location = virtual:~/Maildir/virtual:LAYOUT=maildir++:INDEX=~/Maildir/virtual }
When I remove this mailbox, the error goes away - so it seems to be something with the virtual mailbox.
As the fts provider I use fts_flatcurve, maybe this has something to do with it?
Any help appreciated how to debug this further and maybe fix it. Thanks!
On 21/12/2023 20:32 EET Markus Doits via dovecot dovecot@dovecot.org wrote:
Hello dovecot community,
I hope you can help me with the following panic:
Panic: file index-search-result.c: line 132 (index_search_result_update_flags): assertion failed: (result->search_args->args == &search_arg)
Error:
<snip/>
I have this virtual mailbox configured:
namespace { prefix = _/ separator = / location = virtual:~/Maildir/virtual:LAYOUT=maildir++:INDEX=~/Maildir/virtual }
You should not store virtual folders inside Maildir (assuming this is your mail location). Please use ~/virtual/ instead. The INDEX directive is not needed in this case as it points to same place anyways.
When I remove this mailbox, the error goes away - so it seems to be something with the virtual mailbox.
As the fts provider I use fts_flatcurve, maybe this has something to do with it?
Any help appreciated how to debug this further and maybe fix it. Thanks!
Aki
Am 03.01.24 um 10:14 schrieb Aki Tuomi:
namespace { prefix = _/ separator = / location = virtual:~/Maildir/virtual:LAYOUT=maildir++:INDEX=~/Maildir/virtual }
You should not store virtual folders inside Maildir (assuming this is your mail location). Please use ~/virtual/ instead. The INDEX directive is not needed in this case as it points to same place anyways.
Thanks for your suggestion! I changed it and moved the virtual folders out of the Maildir manually:
location = virtual:~/virtual:LAYOUT=maildir++
Unfortunately the same panic ist still there.
I just noticed there is another panic with the same assertion and backtrace but a different file:
Panic: file index-search-result.c: line 174
(index_search_result_update_appends): assertion failed:
(result->search_args->args == &search_arg)
By the way there is nothing that seems to be broken (fts searching seems to work like it should), but the logs are filled with this panics and backtraces. 🤷♂️
Some more info: The panics happen after logging in (tested with Thunderbird, Roundcube, K-9 Mail on Android). I cannot trigger the panic when doing a fts search after login (e.g. on Thunderbird or K-9 which holds the connection after login).
On 09/01/2024 19:00, Markus Doits via dovecot wrote:
Am 03.01.24 um 10:14 schrieb Aki Tuomi:
namespace { prefix = _/ separator = / location = virtual:~/Maildir/virtual:LAYOUT=maildir++:INDEX=~/Maildir/virtual }
You should not store virtual folders inside Maildir (assuming this is your mail location). Please use ~/virtual/ instead. The INDEX directive is not needed in this case as it points to same place anyways.
Thanks for your suggestion! I changed it and moved the virtual folders out of the Maildir manually:
location = virtual:~/virtual:LAYOUT=maildir++
Unfortunately the same panic ist still there.
I just noticed there is another panic with the same assertion and backtrace but a different file:
Panic: file index-search-result.c: line 174 (index_search_result_update_appends): assertion failed: (result->search_args->args == &search_arg)
By the way there is nothing that seems to be broken (fts searching seems to work like it should), but the logs are filled with this panics and backtraces. 🤷♂️
Some more info: The panics happen after logging in (tested with Thunderbird, Roundcube, K-9 Mail on Android). I cannot trigger the panic when doing a fts search after login (e.g. on Thunderbird or K-9 which holds the connection after login).
Hi Markus
my guess is that it has nothing to do with fts or flatcurve, but when index_search_result_update_flags is invoked from the virtual plugin.
From the comment in index_search_result_update_flags a search parameter is added in order to search for only changed messages. That parameter is added at the front of a linked list of search parameters and after a call to search_result_update_search, it is still expected to be there at the front of the list, but isn't. Presumably either another search parameter was added on the front of the linked list or the existing one was removed.
My suggestion would be to try and capture some debug logging if it is possible. If this is an error that other people haven't found, I am wondering if it's linked to soemthing specific in your dovecot-virtual file(s).
John
participants (3)
-
Aki Tuomi
-
John Fawcett
-
Markus Doits