]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts-flatcurve: Close Xapian databases on deinit
authorMartti Rannanjärvi <martti.rannanjarvi@open-xchange.com>
Tue, 20 Dec 2022 09:43:48 +0000 (11:43 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Tue, 20 Dec 2022 17:30:37 +0000 (17:30 +0000)
src/plugins/fts-flatcurve/fts-backend-flatcurve-xapian.cc

index 5a08b01862d15654ca2b9acfd1b96c258fdada19..c7a8655570e74a5cbb799e82fe85296a1e6a44f6 100644 (file)
@@ -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;