[SSSD] [PATCH] sysdb_set_entry_attr: dump attributes and values on error

Sumit Bose sbose at redhat.com
Mon Mar 9 11:03:19 UTC 2015


On Mon, Mar 09, 2015 at 11:24:31AM +0100, Pavel Reichl wrote:
> 
> 
> On 03/09/2015 10:13 AM, Sumit Bose wrote:
> >Hi,
> >
> >this is a patch I have in my tree for some time for debugging purposes.
> >Recently I've seen some bug reports with "ldb_modify failed" messages in
> >the logs and I think this patch might help in those cases.
> >
> >Additionally I wonder if SSSDBG_MINOR_FAILURE is a suitable debug level
> >here. In most cases an error here prevents a user or group object to be
> >written to the cache, so maybe SSSDBG_CRIT_FAILURE is justified here?
> >
> >bye,
> >Sumit
> >
> >
> >_______________________________________________
> >sssd-devel mailing list
> >sssd-devel at lists.fedorahosted.org
> >https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
> Hello Sumit,
> 
> when compiling at my environment, I'm seeing this warning:
> 
> ../src/db/sysdb_ops.c: In function 'sysdb_set_entry_attr':
> ../src/db/sysdb_ops.c:717:21: warning: format '%u' expects argument of type
> 'unsigned int', but argument 6 has type 'size_t' [-Wformat=]
>                      DEBUG(SSSDBG_MINOR_FAILURE, "   Value[%u]: [%s].\n",
> 
> 
> Would you consider amending the patch?
> -                    DEBUG(SSSDBG_MINOR_FAILURE, "   Value[%u]: [%s].\n",
> +                    DEBUG(SSSDBG_MINOR_FAILURE, "   Value[%zu]: [%s].\n",

Of course, thank you for catching this, new version attached.

bye,
Sumit

> 
> This seem to remove the warning for me.
> 
> Thanks!
> 
-------------- next part --------------
From eaa3bbdea943dd509632e4ccb97c9278bd1208a3 Mon Sep 17 00:00:00 2001
From: Sumit Bose <sbose at redhat.com>
Date: Wed, 21 Jan 2015 11:05:23 +0100
Subject: [PATCH] sysdb_set_entry_attr: dump attributes and values on error

---
 src/db/sysdb_ops.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c
index 6085762dcc5585114dd3049dd3a365856cb6b190..5d25d11f0cc10ab3e59420231e8acfa0e58fbf4b 100644
--- a/src/db/sysdb_ops.c
+++ b/src/db/sysdb_ops.c
@@ -671,6 +671,7 @@ int sysdb_set_entry_attr(struct sysdb_ctx *sysdb,
     struct ldb_message *msg;
     int i, ret;
     int lret;
+    size_t c;
     TALLOC_CTX *tmp_ctx;
 
     tmp_ctx = talloc_new(NULL);
@@ -708,6 +709,16 @@ int sysdb_set_entry_attr(struct sysdb_ctx *sysdb,
     if (lret != LDB_SUCCESS) {
         DEBUG(SSSDBG_MINOR_FAILURE,
               "ldb_modify failed: [%s]\n", ldb_strerror(lret));
+        if (DEBUG_IS_SET(SSSDBG_MINOR_FAILURE)) {
+            for (i = 0; i < msg->num_elements; i++) {
+                DEBUG(SSSDBG_MINOR_FAILURE, "Name: [%s].\n",
+                      msg->elements[i].name);
+                for (c = 0; c < msg->elements[i].num_values; c++) {
+                    DEBUG(SSSDBG_MINOR_FAILURE, "   Value[%zu]: [%s].\n",
+                          c, msg->elements[i].values[c].data);
+                }
+            }
+        }
     }
 
     ret = sysdb_error_to_errno(lret);
-- 
2.1.0



More information about the sssd-devel mailing list