More KCC patches

Denis Cardon denis.cardon at
Thu Jun 11 17:06:35 MDT 2015

G'day Douglas and Andrew,

> I believe so, and thank you for trying!

You are welcome. I am eager to see it working: I have a client who is 
deploying Samba4 on a primary school network and currently have more 
than 55 DCs on as many sites in one domain. I am quite wary about the 
current full meshed replication topology that the current KCC is doing, 
and I am eager to help getting samba_kcc to work :-)

>> I checked out the kcc-intersite-29 branch on a 2 samba DCs replicating
>> the same domain (upgraded from 4.2.0):
>> The test domain has seen almost all the samba releases from the late
>> beta onward (and had quite a tumultuous life), so perhaps I'll try
>> tomorow on a more pristine domain...
> Well, real life Samba installs have tumultuous lives too, so this is
> still a useful test.
> Would it be possible for us to get an ldif dump of the network? Via
> something like this:
> ./bin/samba_kcc --exportldif=mysite.ldif -H
> ldap:// \
>      -Uadministrator%password
> Please send it privately if there's anything secret about the network.
>> Another thing : if I delete all the automatically created connexion and
>> then create the connexion by hand, replication is working fine, however,
>> when running samba_kcc, I then get the following error :
>> [root at srvads.tranq samba]# samba_kcc
>> 'module' object has no attribute 'replSchedule'
>> Taking a look at the drsblobs object :
>>>>> drsblobs.replSchedule
> One thing that has caught us out a few times is the *.pyc files that
> python compiles from the .py modules. The build process doesn't track
> them, and python works out when to regenerate using the timestamps. A
> git checkout gives files the timestamps that git thinks they should,
> rather than the time of the checkout, so python misses the change and
> you get all kinds of weird errors. We have taken to using lines like
> this for our tests:
>    make -j && find . -name \*.pyc -delete && bin/samba_kcc [...]

I have done some cleanup all around and found old stuff still lingering 
in /usr/local/samba from older installations. I am used to make upgrade 
and test "in place" (and it is what is also documented on the wiki [1]), 
however it does not delete old stuff like ./sbin/swat, ./bin/smbclient4, 
etc. I cleaned up the whole thing and now I have a nice samba4.3Git tree 
with up to date .pyc files.

Moreover I actually also did messed up with my git tree, so I got my 
things back together. Now I don't have spurious python error.

So here is where I am currently:

using old kcc :
* in "AD site ands services" mmc, delete inbound repls on both servers
* restart samba on both server (to be sure to trigger the builtin kcc)
* wait 20s. and both connexion are back automatically
* trigger samba_kcc in that situation : no change (I wasn't expecting any)

switching to new samba_kcc in smb.conf
* in "AD site ands services" mmc, delete inbound replications objects on 
both servers
* restart samba on both server
* trigger samba_kcc by hand, wait a few minutes : no kcc connections 
objects get created, per partition inbound/outbound neighbors are not 
all there
* creating by hand the kcc connexion objects in mmc get everything back 
in order

So I didn't manage to get it working, but at least it doesn't make funny 
things anymore. I'll try to dig deeper tomorow.




>> By the way, looking a the kcc computation logic code, it is really mind
>> bloggling! Keep on the good job!
> It is fair to say that Garming and I frequently suffered from boggled
> minds in the course of this work.
> cheers,
> Douglas

Denis Cardon
Tranquil IT Systems
Les Espaces Jules Verne, bâtiment A
12 avenue Jules Verne
44230 Saint Sébastien sur Loire
tel : +33 (0)

More information about the samba-technical mailing list