daemon: correctly end a running trans3_commit if the client disconnects.
authorMichael Adam <obnox@samba.org>
Wed, 23 Feb 2011 16:37:42 +0000 (17:37 +0100)
committerMichael Adam <obnox@samba.org>
Thu, 24 Feb 2011 09:32:00 +0000 (10:32 +0100)
server/ctdb_daemon.c

index 362f1cee5768a4fc098c59b36b3d25bb7973af07..9c650a084f1207cd6bfda7fd99273a9285b75bb6 100644 (file)
@@ -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;