Test for schemaUpdateNow
anatoliy.atanasov at postpath.com
Fri Jul 17 09:48:46 MDT 2009
> -----Original Message-----
> From: Stefan (metze) Metzmacher [mailto:metze at samba.org]
> Sent: Friday, July 17, 2009 17:06
> To: Anatoliy Atanasov
> Cc: abartlet at samba.org; samba-technical at samba.org
> Subject: Re: Test for schemaUpdateNow
> Anatoliy Atanasov schrieb:
> > Hi Metze,
> >> -----Original Message-----
> >> From: Stefan (metze) Metzmacher [mailto:metze at samba.org]
> >> Sent: Friday, July 17, 2009 16:10
> >> To: Anatoliy Atanasov
> >> Cc: abartlet at samba.org; samba-technical at samba.org
> >> Subject: Re: Test for schemaUpdateNow
> >> Hi Anatoliy,
> >>> I dug some more in schemaUpdateNow against Active Directory and I
> >> I have found an explanation why it doesn't need explicit call to update
> >> the schema cache.
> >>> According to: http://technet.microsoft.com/en-us/library/cc961572.aspx
> >>> ..."When the computer is started, the schema cache is loaded from the
> >> underlying database and updated automatically whenever the on-disk
> >> is updated. When changes are made to the schema, the schema cache is
> >> automatically updated within five minutes after the first change was
> >> applied."
> >>> ..."There is also a mechanism for updating the schema cache on demand.
> >> You can use this when you modify the schema. You can add the
> >> schemaUpdateNow attribute to the rootDSE with a value of 1. The value
> >> not used; it acts as a trigger or operational attribute. Writing this
> >> attribute starts a cache reload."
> >>> This _automatic_ schema cache update is the reason we can't have the
> >> same test for schemaUpdateNow against Windows.
> >> I don't understand that, do we wait 5 minutes in the test?
> > No, we do not wait 5 minutes in the test.
> > I only want to point out that AD updates its schema cache automatically
> and without the 'schemaUpdateNow' command from the client. Probably we
> need to implement that behavior too.
> Yes, sure, but this has nothing to do with this tests.
I'll try to summarize here.
So we have a test that creates object class sends schema update now and then creates an object that inherits from the object class and if we do not provoke schema update or we do not have it implemented the test should fail and this is what happened against Samba4. On the other hand the AD behavior in this scenario was that it doesn't need schemaUpdateNow command to be able to create an object with this object class.
This AD behavior is what I tried to explain with this quote from TechNet, that in fact they do schema cache update behind the scenes.
To finish the implementation of schemaUpdateNow task I should implement the same behavior in Samba4 and add a torture not LDAP test to check if schema is updated properly. I hope it is clearer now what we should do to finish the task.
Apart from that there are system checks for schema additions and modifications that should be added too.
More information about the samba-technical