On (09/03/15 12:03), Sumit Bose wrote:
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
> >
> >
> 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!
>
From eaa3bbdea943dd509632e4ccb97c9278bd1208a3 Mon Sep 17 00:00:00
2001
From: Sumit Bose <sbose(a)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);
+ }
+ }
+ }
I'm sorry but this patch isn't very useful
I am debugging bug #2576 and it didn't help me with anything
and I really got a message "ldb_modify failed"
It seems to be some issue with ghost attributes which are not present
in stored msg. They are generated by memberof plug-in.
LS