server: disable vacuuming for persistent tdbs.
authorMichael Adam <obnox@samba.org>
Mon, 2 Nov 2009 23:04:27 +0000 (00:04 +0100)
committerMichael Adam <obnox@samba.org>
Mon, 2 Nov 2009 23:16:28 +0000 (00:16 +0100)
The vacuum process treats persistent databases the same as
non-persistent and thus ignores the extra state for transactions.
This way, it breaks the api-level transactions.

Michael

server/ctdb_ltdb_server.c

index 09e40c77006990de0011686fcba69cfcbd04a604..56ede5dbb8439868699b0971e8ae691f683c618d 100644 (file)
@@ -293,11 +293,14 @@ static int ctdb_local_attach(struct ctdb_context *ctdb, const char *db_name, boo
                return -1;
        }
 
-       ret = ctdb_vacuum_init(ctdb_db);
-       if (ret != 0) {
-               DEBUG(DEBUG_CRIT,("Failed to setup vacuuming for database '%s'\n", ctdb_db->db_name));
-               talloc_free(ctdb_db);
-               return -1;
+       if (!persistent) {
+               ret = ctdb_vacuum_init(ctdb_db);
+               if (ret != 0) {
+                       DEBUG(DEBUG_CRIT,("Failed to setup vacuuming for "
+                                         "database '%s'\n", ctdb_db->db_name));
+                       talloc_free(ctdb_db);
+                       return -1;
+               }
        }