Releases, locking and ldb

Andrew Bartlett abartlet at
Mon Jun 26 23:10:39 UTC 2017

On Mon, 2017-06-26 at 18:11 +0200, Stefan Metzmacher via samba-
technical wrote:
> Would sssd break with these changes?

In the interests of moving this along, I have checked some basic facts,
which I hope the sssd maintainers can confirm.

sssd never calls ldb_init() with an event context, except in
confdb_init() where it provides a private context that is not used
anywhere else.  

A parent request is always supplied in the memberof module, so the
event context chaining required by the private handle code should keep
working, if used against a tdb backend. 

ldb_request() is only called from syssdb_ops.c and sysdb_search.c and
in both cases the default callback is used.  Therefore no writes occur
during reads.  In both cases the request is destroyed with
talloc_free() before the end of the function, so locks can't still be
held on that request waiting for a ldb_request() that won't happen. 

I think that makes it pretty safe.


Andrew Bartlett

Andrew Bartlett
Authentication Developer, Samba Team
Samba Development and Support, Catalyst IT

More information about the samba-technical mailing list