summaryrefslogtreecommitdiffstats
path: root/ctdb/server/ctdb_daemon.c
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2011-02-23 17:37:42 +0100
committerMichael Adam <obnox@samba.org>2011-02-24 10:35:25 +0100
commitee44c23cd5a9388eaa3e9bee76e778373e09f557 (patch)
tree07c3eaf0f4d82e9d3b62d5894af2501b5b8585b4 /ctdb/server/ctdb_daemon.c
parent0b3d8d28f6610b59fd7153a50325dfc9d7d9123c (diff)
downloadsamba-ee44c23cd5a9388eaa3e9bee76e778373e09f557.tar.gz
samba-ee44c23cd5a9388eaa3e9bee76e778373e09f557.tar.xz
samba-ee44c23cd5a9388eaa3e9bee76e778373e09f557.zip
daemon: correctly end a running trans3_commit if the client disconnects.
(This used to be ctdb commit 9e0898db6df52d9bc799dd87bfea8c72d5f70ba0)
Diffstat (limited to 'ctdb/server/ctdb_daemon.c')
-rw-r--r--ctdb/server/ctdb_daemon.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ctdb/server/ctdb_daemon.c b/ctdb/server/ctdb_daemon.c
index 362f1cee57..9c650a084f 100644
--- a/ctdb/server/ctdb_daemon.c
+++ b/ctdb/server/ctdb_daemon.c
@@ -225,7 +225,16 @@ static int ctdb_client_destructor(struct ctdb_client *client)
DEBUG(DEBUG_ERR, (__location__ " client exit while transaction "
"commit active. Forcing recovery.\n"));
client->ctdb->recovery_mode = CTDB_RECOVERY_ACTIVE;
+
+ /* legacy trans2 transaction state: */
ctdb_db->transaction_active = false;
+
+ /*
+ * trans3 transaction state:
+ *
+ * The destructor sets the pointer to NULL.
+ */
+ talloc_free(ctdb_db->persistent_state);
}
return 0;