On Tue, Oct 02, 2012 at 03:39:19PM +0200, Pavel Březina wrote:
https://fedorahosted.org/sssd/ticket/1514
See the commit message and ticket comments for more information.
This patch introduces one of the possible solutions, but I suggest
to consider actually changing memory hierarchy in responders.
Instead of creating the boolean flag, what about iterating over the
dp_requests table in the sss_responder_ctx_destructor, cancel the
pending requests and remove the original sss_dp_req_destructor ?
Currently, the hierarchy looks like this:
main_ctx->specific_ctx->rctx, where specific_ctx is one of the pam,
nss, sudo, etc. contexts.
Does anybody know why it is not main_ctx->rctx->specific_ctx? This
would solve the issue as well and I personally think that it is more
logical.
Hmm, I don't actually see any reason why the responder context is
allocated below the specific context either.
I discussed the hierarchy some more with Pavel and the proposal is to
modify the hierarchy as follows:
main_ctx --> rctx +--> dp_requests
|
+--> specific_ctx
And then set a desctructor to dp_requests so that it is freed before
specific_ctx is as destructors of the DP requests might need to access
data from the specific_ctx.
Stephen, you probably know the hierarchy of the DP requests the best,
what do you think?