summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2010-05-24 10:03:17 -0400
committerStephen Gallagher <sgallagh@redhat.com>2010-05-24 13:36:05 -0400
commit7bd53da9237e7e6c2d772f1e35cdee4c0f2fa60c (patch)
tree83fba5db4d9c72895448f4ec8f823d374aac015a
parentd51cdeedaa99ba35059e25428245221deb3a76ba (diff)
downloadsssd-7bd53da9237e7e6c2d772f1e35cdee4c0f2fa60c.tar.gz
sssd-7bd53da9237e7e6c2d772f1e35cdee4c0f2fa60c.tar.xz
sssd-7bd53da9237e7e6c2d772f1e35cdee4c0f2fa60c.zip
Fix queuing bug in proxy provider
We weren't zeroing out the proxy_auth_ctx when we created it, so the 'running' element was sometimes being filled with garbage data that exceeded the maximum number of child processes. This meant that no requests were ever sent to the child processes.
-rw-r--r--src/providers/proxy/proxy.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/providers/proxy/proxy.c b/src/providers/proxy/proxy.c
index ac2a7dffc..7ff74a1c8 100644
--- a/src/providers/proxy/proxy.c
+++ b/src/providers/proxy/proxy.c
@@ -281,10 +281,12 @@ static struct tevent_req *proxy_child_send(TALLOC_CTX *mem_ctx,
state->running = true;
}
-
- /* If there was no available slot, it will be queued
- * until a slot is available
- */
+ else {
+ /* If there was no available slot, it will be queued
+ * until a slot is available
+ */
+ DEBUG(8, ("All available child slots are full, queuing request\n"));
+ }
return req;
}
@@ -3313,7 +3315,7 @@ int sssm_proxy_auth_init(struct be_ctx *bectx,
return EOK;
}
- ctx = talloc(bectx, struct proxy_auth_ctx);
+ ctx = talloc_zero(bectx, struct proxy_auth_ctx);
if (!ctx) {
return ENOMEM;
}