From: Timo Sirainen Date: Thu, 11 Mar 2021 21:38:01 +0000 (+0200) Subject: fts: Add reason_code=fts:index and fts:lookup X-Git-Tag: 2.3.18~326 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=88c2ee58f1027ee00329cd66d36d894230fd4ec0;p=thirdparty%2Fdovecot%2Fcore.git fts: Add reason_code=fts:index and fts:lookup Note that fts:index won't be used for email opening events, because the emails are already opened by the indexer precache searching code due to wanted_fields. --- diff --git a/src/plugins/fts/fts-search.c b/src/plugins/fts/fts-search.c index 6afc6aa259..110308bb7d 100644 --- a/src/plugins/fts/fts-search.c +++ b/src/plugins/fts/fts-search.c @@ -336,7 +336,7 @@ static void fts_search_merge_scores(struct fts_search_context *fctx) TRUE, &fctx->scores->score_map); } -void fts_search_lookup(struct fts_search_context *fctx) +static void fts_search_try_lookup(struct fts_search_context *fctx) { uint32_t last_uid, seq1, seq2; @@ -365,3 +365,10 @@ void fts_search_lookup(struct fts_search_context *fctx) fts_search_deserialize(fctx->args->args, fctx->orig_matches); fts_backend_lookup_done(fctx->backend); } + +void fts_search_lookup(struct fts_search_context *fctx) +{ + struct event_reason *reason = event_reason_begin("fts:lookup"); + fts_search_try_lookup(fctx); + event_reason_end(&reason); +} diff --git a/src/plugins/fts/fts-storage.c b/src/plugins/fts/fts-storage.c index fad1e59fdd..24d4acc206 100644 --- a/src/plugins/fts/fts-storage.c +++ b/src/plugins/fts/fts-storage.c @@ -557,10 +557,13 @@ static int fts_mail_precache(struct mail *_mail) ft->highest_virtual_uid = _mail->uid; } else if (!ft->indexing) T_BEGIN { /* avoid recursing here from fts_mail_precache_range() */ + struct event_reason *reason = + event_reason_begin("fts:index"); ft->indexing = TRUE; ret = fts_mail_index(_mail); i_assert(ft->indexing); ft->indexing = FALSE; + event_reason_end(&reason); } T_END; return ret; } @@ -612,6 +615,7 @@ static int fts_transaction_end(struct mailbox_transaction_context *t, const char ret = -1; } + struct event_reason *reason = event_reason_begin("fts:index"); if (ft->precached) { i_assert(flist->update_ctx_refcount > 0); if (--flist->update_ctx_refcount == 0) { @@ -637,6 +641,7 @@ static int fts_transaction_end(struct mailbox_transaction_context *t, const char ft->precache_extra_count, t->box->vname); } } + event_reason_end(&reason); i_free(ft); return ret; }