[SSSD] [PATCH] Fix authentication queue code for proxy auth

Sumit Bose sbose at redhat.com
Wed Nov 17 09:22:26 UTC 2010


On Tue, Nov 16, 2010 at 04:12:40PM -0500, Stephen Gallagher wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 11/16/2010 04:09 PM, Stephen Gallagher wrote:
> > We weren't decrementing the count of in-progress authentication
> > request child processes when they completed successfully. With
> > this patch, we will now guarantee that the process count is
> > accurate and that queued requests will be started when a slot is
> > freed up.
> > 
> > Fixes https://fedorahosted.org/sssd/ticket/660
> > 
> 
> 
> Sorry, I realized after I sent it that I only moved the problem. The
> first patch would have caused a similar problem if the auth child
> experienced an error. New patch attached should be correct for both cases.
> 

Can you call 'client_ctx->auth_ctx->running--;' directly after
'proxy_child_recv()' ?

bye,
Sumit

> - -- 
> Stephen Gallagher
> RHCE 804006346421761
> 
> Delivering value year after year.
> Red Hat ranks #1 in value among software vendors.
> http://www.redhat.com/promo/vendor/
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.11 (GNU/Linux)
> Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/
> 
> iEYEARECAAYFAkzi88gACgkQeiVVYja6o6PbdwCgkLZHDhz+raC96idCn+RfeLtf
> RFcAnAkTb8iT9+fk41JeILzoG/NwW+RL
> =45K8
> -----END PGP SIGNATURE-----

> From 499993e068bf9ad1798e384a9db18f5565d45f0e Mon Sep 17 00:00:00 2001
> From: Stephen Gallagher <sgallagh at redhat.com>
> Date: Tue, 16 Nov 2010 16:05:50 -0500
> Subject: [PATCH] Fix authentication queue code for proxy auth
> 
> We weren't decrementing the count of in-progress authentication
> request child processes when they completed successfully. With
> this patch, we will now guarantee that the process count is
> accurate and that queued requests will be started when a slot is
> freed up.
> ---
>  src/providers/proxy/proxy_auth.c |   13 +++++++++++++
>  1 files changed, 13 insertions(+), 0 deletions(-)
> 
> diff --git a/src/providers/proxy/proxy_auth.c b/src/providers/proxy/proxy_auth.c
> index 64b38cbedf30d0989f9517763e8281abb67958d8..edc35adfeb2471bbd3e005f4fdda1ab00c88caab 100644
> --- a/src/providers/proxy/proxy_auth.c
> +++ b/src/providers/proxy/proxy_auth.c
> @@ -738,6 +738,19 @@ static void proxy_child_done(struct tevent_req *req)
>          return;
>      }
>  
> +    /* Start the next auth in the queue, if any */
> +    client_ctx->auth_ctx->running--;


> +    imm = tevent_create_immediate(client_ctx->be_req->be_ctx->ev);
> +    if (imm == NULL) {
> +        DEBUG(1, ("tevent_create_immediate failed.\n"));
> +        return;
> +    }
> +
> +    tevent_schedule_immediate(imm,
> +                              client_ctx->be_req->be_ctx->ev,
> +                              run_proxy_child_queue,
> +                              client_ctx->auth_ctx);
> +
>      /* Check if we need to save the cached credentials */
>      if ((pd->cmd == SSS_PAM_AUTHENTICATE || pd->cmd == SSS_PAM_CHAUTHTOK) &&
>              pd->pam_status == PAM_SUCCESS &&
> -- 
> 1.7.3.2
> 


> _______________________________________________
> sssd-devel mailing list
> sssd-devel at lists.fedorahosted.org
> https://fedorahosted.org/mailman/listinfo/sssd-devel




More information about the sssd-devel mailing list