]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ldb_tdb: Provide better debugging on end_trans failures
authorAndrew Bartlett <abartlet@samba.org>
Thu, 30 Mar 2017 01:27:55 +0000 (14:27 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 22 May 2017 23:13:24 +0000 (01:13 +0200)
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
lib/ldb/ldb_tdb/ldb_tdb.c

index a5feea0284ba153238b5db01f1f88c592e264fe4..3dfd1ccf652a0dc979f78e91e4d1393fb7ab9895 100644 (file)
@@ -1153,11 +1153,12 @@ static int ltdb_prepare_commit(struct ldb_module *module)
 
 static int ltdb_end_trans(struct ldb_module *module)
 {
+       int ret;
        void *data = ldb_module_get_private(module);
        struct ltdb_private *ltdb = talloc_get_type(data, struct ltdb_private);
 
        if (!ltdb->prepared_commit) {
-               int ret = ltdb_prepare_commit(module);
+               ret = ltdb_prepare_commit(module);
                if (ret != LDB_SUCCESS) {
                        return ret;
                }
@@ -1167,7 +1168,12 @@ static int ltdb_end_trans(struct ldb_module *module)
        ltdb->prepared_commit = false;
 
        if (tdb_transaction_commit(ltdb->tdb) != 0) {
-               return ltdb_err_map(tdb_error(ltdb->tdb));
+               ret = ltdb_err_map(tdb_error(ltdb->tdb));
+               ldb_asprintf_errstring(ldb_module_get_ctx(module),
+                                      "Failure during tdb_transaction_commit(): %s -> %s",
+                                      tdb_errorstr(ltdb->tdb),
+                                      ldb_strerror(ret));
+               return ret;
        }
 
        return LDB_SUCCESS;