"panic ... assertion failed" with virtual and flatcurve fts together
Hi,
I'm getting the following error:
$ doveadm fetch 'mailbox storageid' guid '1721115116.M995635P1988.exoco.falsifian.org,S=28763,W=29300'
Error: net_connect_unix(/var/dovecot/stats-writer) failed: Permission denied
doveadm(falsifian): Panic: file index-search-result.c: line 174 (index_search_result_update_appends): assertion failed: (result->search_args->args == &search_arg)
When I remove "virtual" from my "plugins" configuration line and remove the virtual namespace, the search works:
$ doveadm fetch 'mailbox storageid' guid '1721115116.M995635P1988.exoco.falsifian.org,S=28763,W=29300'
Error: net_connect_unix(/var/dovecot/stats-writer) failed: Permission denied
mailbox: Spam
storageid: 1721115116.M995635P1988.exoco.falsifian.org,S=28763,W=29300
It also works if I remove fts and fts_flatcurve from my "plugins" configuration line, leaving "virtual" alone.
I first saw this when I enabled fts (with fts_flatcurve): I saw a lot of such errors in the logs when I attempted full text searches via neomutt. The errors seemed to stop happening after the indexing jobs finally finished, but just today I saw it again with the above query unrelated to fts. I have been using virtual mailboxes for a long time and hadn't noticed the error before trying fts.
$ dovecot --version 2.3.21 (47349e2482)
Output of doveconf -n (full config that triggers the error) follows signature.
I saw something similar was reported in January [0] (that gave me the idea to try turning off virtual). Please let me know what I can do to help debug. It's just my personal mail server so I might be able to do things like run a debug build if necessary (assuming I find the time).
[0] https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/thread/Z2HTMX...
-- James
# 2.3.21 (47349e2482): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.21 (f6cd4b8e) # OS: OpenBSD 7.5 amd64 ffs # Hostname: exoco.falsifian.org first_valid_uid = 1000 mail_location = maildir:/home/%u/Maildir mail_plugins = " fts fts_flatcurve virtual" 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 mime foreverypart extracttext mbox_write_locks = fcntl mmap_disable = yes 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 = / } namespace virtual { location = virtual:/mail/%u/virtual prefix = virtual/ separator = / } passdb { args = /etc/dovecot/passdb driver = passwd-file } plugin { fts = flatcurve fts_filters = lowercase fts_flatcurve_substring_search = yes fts_languages = en fts_tokenizers = generic email-address } protocols = imap ssl_cert =
participants (1)
-
James Cook