[PATCH] Core ldb modules changes

Andrew Bartlett abartlet at samba.org
Thu Jan 17 23:41:42 GMT 2008


On Thu, 2008-01-17 at 18:26 -0500, simo wrote:
> On Fri, 2008-01-18 at 10:25 +1100, Andrew Bartlett wrote:
> > On Thu, 2008-01-17 at 10:37 -0500, simo wrote:
> > > This is a new patch[1] to the core ldb internal async API to address some
> > > issue that were preventing me from using ldb in a full async server.
> > > The next step will be to add support to replace the run queue now
> > > attached to the ldb context with an event system and completely stop
> > > using the ldb_wait() call in fully async code calling code.
> > 
> > > Before committing I will finish porting the dsdb modules to this
> > > interface, but I thought that people may be interested in commenting and
> > > understanding the direction I want to take with this code.
> > > 
> > > Simo.
> > > 
> > > [1] Patch here as it is a bit too big for the list:
> > > http://samba.org/~idra/patches/0001-This-commit-changes-in-some-key-areas-the-way-ldb-mo.patch
> > > 
> > > Also git tree here: git://git.samba.org/idra/samba.git
> > > branch v4-0-ldb-async
> > 
> > - search request callbacks MUST not issue new requests until the
> >   LDB_REPLY_DONE ldb_reply is received. Once this reply is received a
> >   module can issue a new request or return to the upper module using
> >   ldb_module_done()
> > 
> > 
> > Why do you want this restriction?  In a number of modules, this pattern
> > has allowed an easy, asynchronous handling of some difficult situations
> > (such as handling subtree renames, without building massive lists in
> > memory). 
> 
> Which only worked by chance

It seemed to work perfectly fine in ldb_tdb and against LDAP...

>  because ldb_tdb ws async and giving back
> results before the former request was done (this does not happen anymore
> now even with ldb_tdb).
> 
> It simply does not work.

Why not?  I'm confused - it seems a very natural pattern to 'do
something' in the callback, where that something may well be a
modification to the records.

Why should this not be possible?  How do you suggest implementing
'iterate and fix' modules?

Andrew Bartlett

-- 
Andrew Bartlett
http://samba.org/~abartlet/
Authentication Developer, Samba Team           http://samba.org
Samba Developer, Red Hat Inc.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.samba.org/archive/samba-technical/attachments/20080118/9a59159b/attachment.bin


More information about the samba-technical mailing list