1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

vacuum: fix crash on vacuum abort

Martin Schwenke discovered that 517f05e42f17766b1e8db8f1f4789cbad968e304
("freeze: abort vacuuming when we're going to freeze.") used ctdb_db for
a logging message which is in fact uninitialized, causing a crash (even
if it wasn't actually logged).

Initialize it properly.  Also fix incorrect format in another logging
message introduced in that same change.

CQ:S1019093
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

(This used to be ctdb commit 8e518950ba281502318d6300f7a5ec6cdf6b5674)
This commit is contained in:
Rusty Russell 2010-07-26 16:08:07 +09:30
parent af55c910a4
commit 0b07f91d36

View File

@ -636,6 +636,7 @@ static int ctdb_repack_db(struct ctdb_db_context *ctdb_db, TALLOC_CTX *mem_ctx)
vdata->vacuum_limit = vacuum_limit;
vdata->repack_limit = repack_limit;
vdata->delete_tree = trbt_create(vdata, 0);
vdata->ctdb_db = ctdb_db;
if (vdata->delete_tree == NULL) {
DEBUG(DEBUG_ERR,(__location__ " Out of memory\n"));
talloc_free(vdata);
@ -887,9 +888,9 @@ void ctdb_stop_vacuuming(struct ctdb_context *ctdb)
{
/* Simply free them all. */
while (ctdb->vacuumers) {
DEBUG(DEBUG_INFO, ("Aborting vacuuming for %s (%p)\n",
DEBUG(DEBUG_INFO, ("Aborting vacuuming for %s (%i)\n",
ctdb->vacuumers->vacuum_handle->ctdb_db->db_name,
ctdb->vacuumers->child_pid));
(int)ctdb->vacuumers->child_pid));
/* vacuum_child_destructor kills it, removes from list */
talloc_free(ctdb->vacuumers);
}