From a37cc3a87bb2b50ca7645a9ebce704be4c37d375 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Martti=20Rannanj=C3=A4rvi?= Date: Tue, 20 Dec 2022 11:43:48 +0200 Subject: [PATCH] fts-flatcurve: Close Xapian databases on deinit --- src/plugins/fts-flatcurve/fts-backend-flatcurve-xapian.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/fts-flatcurve/fts-backend-flatcurve-xapian.cc b/src/plugins/fts-flatcurve/fts-backend-flatcurve-xapian.cc index 5a08b01862..c7a8655570 100644 --- a/src/plugins/fts-flatcurve/fts-backend-flatcurve-xapian.cc +++ b/src/plugins/fts-flatcurve/fts-backend-flatcurve-xapian.cc @@ -226,6 +226,7 @@ void fts_flatcurve_xapian_init(struct flatcurve_fts_backend *backend) void fts_flatcurve_xapian_deinit(struct flatcurve_fts_backend *backend) { struct flatcurve_xapian *x = backend->xapian; + const char *error; x->deinit = TRUE; if (hash_table_is_created(x->optimize)) { @@ -237,7 +238,6 @@ void fts_flatcurve_xapian_deinit(struct flatcurve_fts_backend *backend) str_append(backend->boxname, (const char *)key); str_append(backend->db_path, (const char *)val); - const char *error; if (fts_flatcurve_xapian_optimize_box( backend, &error) < 0) e_error(backend->event, "%s", error); @@ -246,6 +246,8 @@ void fts_flatcurve_xapian_deinit(struct flatcurve_fts_backend *backend) hash_table_iterate_deinit(&iter); hash_table_destroy(&x->optimize); } + if (fts_flatcurve_xapian_close(backend, &error) < 0) + e_error(backend->event, "Failed to close Xapian: %s", error); hash_table_destroy(&x->dbs); pool_unref(&x->pool); x->deinit = FALSE; -- 2.47.3