summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2016-08-05 13:13:08 +1000
committerStefan Metzmacher <metze@samba.org>2016-08-10 11:24:37 +0200
commita00953225dbaeef908abc57ebb2a1874fae62fda (patch)
treebc8e7b7ad34ef8107d04a8d1c039be1bd8345cc0
parent34c34998b1a8b137d51413af3c6831cf827dbbef (diff)
downloadsamba-a00953225dbaeef908abc57ebb2a1874fae62fda.tar.gz
ctdb-tools: Cancel transaction on error or if commit fails
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12122 Signed-off-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Martin Schwenke <martin@meltin.net> (cherry picked from commit 4d144d7106d56bbb48669dd35eb324377dd09b59)
-rw-r--r--ctdb/tools/ctdb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ctdb/tools/ctdb.c b/ctdb/tools/ctdb.c
index c83d3970e6d..eba6cdd3ff1 100644
--- a/ctdb/tools/ctdb.c
+++ b/ctdb/tools/ctdb.c
@@ -5136,6 +5136,7 @@ static int control_pfetch(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
if (ret != 0) {
fprintf(stderr, "Failed to read record for key %s\n",
argv[1]);
+ ctdb_transaction_cancel(h);
return ret;
}
@@ -5200,6 +5201,7 @@ static int control_pstore(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
if (ret != 0) {
fprintf(stderr, "Failed to store record for key %s\n",
argv[1]);
+ ctdb_transaction_cancel(h);
return ret;
}
@@ -5207,6 +5209,7 @@ static int control_pstore(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
if (ret != 0) {
fprintf(stderr, "Failed to commit transaction on db %s\n",
db_name);
+ ctdb_transaction_cancel(h);
return ret;
}
@@ -5262,6 +5265,7 @@ static int control_pdelete(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
if (ret != 0) {
fprintf(stderr, "Failed to delete record for key %s\n",
argv[1]);
+ ctdb_transaction_cancel(h);
return ret;
}
@@ -5269,6 +5273,7 @@ static int control_pdelete(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
if (ret != 0) {
fprintf(stderr, "Failed to commit transaction on db %s\n",
db_name);
+ ctdb_transaction_cancel(h);
return ret;
}
@@ -5412,6 +5417,7 @@ static int control_ptrans(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
if (ret != 0) {
fprintf(stderr, "Failed to commit transaction on db %s\n",
db_name);
+ ctdb_transaction_cancel(h);
}
done: