s4-dsdb: Improve logging for drs_ObjectIdentifier_to_dn_and_nc_root()
authorAndrew Bartlett <abartlet@samba.org>
Tue, 27 Jun 2023 02:59:49 +0000 (14:59 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Sun, 13 Aug 2023 21:59:29 +0000 (21:59 +0000)
At this layer we can make a reasonable assumption about being able
to read ldb_errstring() to print that for extra useful debugging.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15401

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source4/dsdb/common/dsdb_dn.c

index d40750a0376ef1ad88016e91d11bd400f453af5e..63a8628d6d3f1607ae386da179ef9326a71f28d8 100644 (file)
@@ -554,6 +554,18 @@ int drs_ObjectIdentifier_to_dn_and_nc_root(TALLOC_CTX *mem_ctx,
                                                 new_dn,
                                                 normalised_dn,
                                                 nc_root);
+       if (ret != LDB_SUCCESS) {
+               /*
+                * dsdb_normalise_dn_and_find_nc_root() sets LDB error
+                * strings, and the functions it calls do also
+                */
+               DBG_NOTICE("Failed to find DN \"%s\" -> \"%s\" for normalisation: %s (%s)\n",
+                          drs_ObjectIdentifier_to_debug_string(mem_ctx, nc),
+                          ldb_dn_get_extended_linearized(mem_ctx, new_dn, 1),
+                          ldb_errstring(ldb),
+                          ldb_strerror(ret));
+       }
+
        TALLOC_FREE(new_dn);
        return ret;
 }