[WIP][PATCH] Remove nested transactions by default

Andrew Bartlett abartlet at samba.org
Wed Jun 28 19:29:29 UTC 2017

On Wed, 2017-06-28 at 18:23 +1200, Andrew Bartlett via samba-technical
> I had left this aside, but being on the home stretch for the locking
> patches I wanted to raise the issue of the LDB transaction semantics.
> ldb's current transaction semantics are (frankly) a little odd.
> If we have a nested transaction, eg:
> - start transaction
>   - start transaction
>   - operation
>   - cancel transaction 
> - end transaction
> Then the cancel transaction is just ignored!
> Internally there are also many layers of reference counting that while
> currently correct feel ripe for challenges in the future. 
> This patch set removes the ability to nest transactions by default,
> using it only for a special case in the join. 
> I don't want to derail the locking patches, but I also thought 'if we
> are going to break the behaviours, why not get rid of this'. 
> Thoughts welcome.  I suspect we should just leave this for after 4.7,
> but it is presented for comment. 

There is still a lot of work to do on this one (a number of tests fail
in the autobuild run I was doing).  I'll leave it for 4.8, but it means
we will probably do another breaking change in the future.

Andrew Bartlett

Andrew Bartlett                       http://samba.org/~abartlet/
Authentication Developer, Samba Team  http://samba.org
Samba Developer, Catalyst IT          http://catalyst.net.nz/services/samba

More information about the samba-technical mailing list