From: Simo Sorce Date: Thu, 22 Jan 2009 16:51:37 +0000 (-0500) Subject: Do not start a transaction this way. X-Git-Tag: samba-4.0.0alpha7~424^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3942e53357146c9c5419313efc4c91b85f7e508b;p=thirdparty%2Fsamba.git Do not start a transaction this way. Because we still want to commit any changes that successfully apply we never want to do a global cancel, and because of how transaction nesting works that means we never cancel any "transaction" at the single modify operation level. Let each operation start its own transaction so that the transaction is properly canceled if any error is returned and half committed operations (though plugins failing) are properly reverted on a per operation basis. --- diff --git a/source4/lib/ldb/tools/ldbmodify.c b/source4/lib/ldb/tools/ldbmodify.c index d73937cea42..6e355a10cf5 100644 --- a/source4/lib/ldb/tools/ldbmodify.c +++ b/source4/lib/ldb/tools/ldbmodify.c @@ -93,11 +93,6 @@ int main(int argc, const char **argv) options = ldb_cmdline_process(ldb, argc, argv, usage); - if (ldb_transaction_start(ldb) != 0) { - printf("Failed to start transaction: %s\n", ldb_errstring(ldb)); - exit(1); - } - if (options->argc == 0) { ret = process_file(ldb, stdin, &count); } else { @@ -113,11 +108,6 @@ int main(int argc, const char **argv) } } - if (count != 0 && ldb_transaction_commit(ldb) != 0) { - printf("Failed to commit transaction: %s\n", ldb_errstring(ldb)); - exit(1); - } - talloc_free(ldb); printf("Modified %d records with %d failures\n", count, failures);