Patch: assertion failed in doveadm fts lookup

Aki Tuomi aki.tuomi at open-xchange.com
Sun Jan 9 16:31:42 UTC 2022


> On 09/01/2022 05:46 John Fawcett <john at voipsupport.it> wrote:
> 
>  
> Hi
> 
> I'm reposting this patch, which I have been applying locally since I 
> originally posted it. Hopefully it can be considered for inclusion in 
> the official release. It was tested on dovecot 2.3.16 but applies 
> against the latest version 2.3.17.1.
> 
> This is the "assertion failed" that it addresses
> 
> doveadm fts lookup -u john at voipsupport.it body "text to look for"
> 
> doveadm(john at voipsupport.it): Panic: file mail-storage.c: line 2108 
> (mailbox_get_open_status): assertion failed: (box->opened)
> doveadm(john at voipsupport.it): Error: Raw backtrace: 
> /usr/local/lib/dovecot/libdovecot.so.0(backtrace_append+0x42) 
> [0x7ff624fa7072] -> 
> /usr/local/lib/dovecot/libdovecot.so.0(backtrace_get+0x1e) 
> [0x7ff624fa718e] -> /usr/local/lib/dovecot/libdovecot.so.0(+0xffc3b) 
> [0x7ff624fb3c3b] -> /usr/local/lib/dovecot/libdovecot.so.0(+0xffc71) 
> [0x7ff624fb3c71] -> /usr/local/lib/dovecot/libdovecot.so.0(+0x5536f) 
> [0x7ff624f0936f] -> 
> /usr/local/lib/dovecot/libdovecot-storage.so.0(+0x3fc31) 
> [0x7ff6250bcc31] -> 
> /usr/local/lib/dovecot/lib21_fts_solr_plugin.so(+0x540d) 
> [0x7ff62244f40d] -> 
> /usr/local/lib/dovecot/lib20_fts_plugin.so(fts_backend_lookup+0x4d) 
> [0x7ff6246b624d] -> 
> /usr/local/lib/dovecot/doveadm/lib20_doveadm_fts_plugin.so(+0x2e8c) 
> [0x7ff62240ce8c] -> doveadm(+0x31ded) [0x55f0c7f3aded] -> 
> doveadm(+0x32862) [0x55f0c7f3b862] -> 
> doveadm(doveadm_cmd_ver2_to_mail_cmd_wrapper+0x22d) [0x55f0c7f3c6fd] -> 
> doveadm(doveadm_cmd_run_ver2+0x4d8) [0x55f0c7f4d158] -> 
> doveadm(doveadm_cmd_try_run_ver2+0x3a) [0x55f0c7f4d1aa] -> 
> doveadm(main+0x1f6) [0x55f0c7f2b606] -> 
> /lib64/libc.so.6(__libc_start_main+0xd5) [0x7ff624bc8b75] -> 
> doveadm(_start+0x2e) [0x55f0c7f2ba0e]
> Aborted (core dumped)
> 
> Here's the patch:
> 
> diff -ur dovecot-2.3.17.1-orig/src/plugins/fts/doveadm-fts.c 
> dovecot-2.3.17.1-new/src/plugins/fts/doveadm-fts.c
> --- dovecot-2.3.17.1-orig/src/plugins/fts/doveadm-fts.c 2021-12-03 
> 12:48:47.000000000 +0100
> +++ dovecot-2.3.17.1-new/src/plugins/fts/doveadm-fts.c  2022-01-09 
> 01:33:23.396342025 +0100
> @@ -47,6 +47,14 @@
>          i_array_init(&result.scores, 16);
> 
>          box = mailbox_alloc(info->ns->list, info->vname, 0);
> +       mailbox_set_reason(box,"fts search");
> +       if (mailbox_open(box) < 0) {
> +               i_error("Couldn't open mailbox: %s",
> +                       mailbox_get_last_internal_error(box, NULL));
> +               doveadm_mail_failed_error(ctx, MAIL_ERROR_TEMP);
> +               return -1;
> +       }
> +
>          if (fts_backend_lookup(backend, box, ctx->search_args->args,
>                                        FTS_LOOKUP_FLAG_AND_ARGS, 
> &result) < 0) {
>                  i_error("fts lookup failed");
> 
> John

Thank you for your patch. We'll take a look at it.

Aki


More information about the dovecot mailing list