[PATCH] make schannel.tdb TDB_CLEAR_IF_FIRST
simo
idra at samba.org
Mon Jun 28 06:26:41 MDT 2010
On Fri, 2010-06-25 at 09:08 +1000, Andrew Bartlett wrote:
> On Thu, 2010-06-24 at 16:43 +0200, Volker Lendecke wrote:
> > On Thu, Jun 24, 2010 at 09:22:53AM +1000, Andrew Bartlett wrote:
> > > Attached again is my proposed set of changes. They pass 'make test' in
> > > Samba3 and Samba4, and I've manually verified that the
> > > TDB_CLEAR_IF_FIRST behaviour is applied correctly (by inspection with
> > > tdbdump while conduction schannel operations against Samba3)
> > >
> > > I think I've followed the pattern given above correctly. If someone
> > > could please push/review/comment I would very much appreciate it.
> >
> > The changes technically look ok. In particular, as we should
> > remove all non CLEAR_IF_FIRST uses of tdb without
> > transactions. I just wonder where the fsyncs in your tests
> > come from. I have always thought that tdb does not do fsyncs
> > when no transactions are used, but I might be wrong.
> >
> > Can you explain where the fsync calls in your test come
> > from?
>
> Yes, this TDB uses transactions to ensure the updates are safe
> (inherited from gd's conversion of this functionality from ldb, which
> used transactions). I guess that now that it is CLEAR_IF_FIRST then we
> could use normal tdb locking rather than needing the lock out the whole
> DB for exclusive access.
>
> I would however like to leave that for a subsequent patch, if that's OK.
> (We would need all of this change anyway, and I need to carefully
> consider the required semantics).
When I converted this schannel DB from ldb to tdb I realized the
transaction is necessary to avoid races IIRC. Otherwise I would have
removed it already.
Simo.
--
Simo Sorce
Samba Team GPL Compliance Officer <simo at samba.org>
Principal Software Engineer at Red Hat, Inc. <simo at redhat.com>
More information about the samba-technical
mailing list