Patches for DFS implementation

Matthieu Patou mat+Informatique.Samba at
Thu May 13 15:53:09 MDT 2010

Hi Metze,
Thank for your tests.
I'm a bit puzzled, as your trace show that requestedname is 

#14 0x00000000006edbab in dodc_or_sysvol_referral (ctx=0x1e24e30, dfsreq=
       {max_referral_level = 4, servername = 0xe47f90 
"\\\\sysvol"}, requestedname=0xe47f90 
"\\\\sysvol", ldb=0xb03d70,
     trans=0x24709d0, req=0x174f370, lp_ctx=0xae8820)
     at ../smb_server/smb/trans2.c:1484
         nb_entries = 1
         current = 1

And in the code of dodc_or_sysvol_referral the parameter is passed 
without modification (well normally)
                                 status = 
dfsreq.max_referral_level, requestedname,
talloc_asprintf(referral,"\\%s\\%s",set[i]->names[j],share), j==0);

and the error in your trace is at
#8  0x00000000005c2219 in ndr_push_dfs_normal_referral (ndr=0x1e19910,
     ndr_flags=2, r=0x2860a88) at default/librpc/gen_ndr/ndr_dfsblobs.c:384
         _status = 32767
         _flags_save_string = 2

It's when pushing DFS_path which is in fact requestedname.

I tried running this with valgrind and found errors of course but they 
were due to bad parenting and occured after talloc_free(context) when 
your occured before.
In anycase now valgrind is clean.

I attached a patch for fixing error can you try it and tell me if you 
still have pbs ?



On 13/05/2010 23:37, Stefan (metze) Metzmacher wrote:
> Matthieu Patou schrieb:
>> Hello this is a serie of 6 patches made for implementing Domain referral
>> in samba4.
>> Those patches are made to allow s4 to respond to domain DFS referral
>> requests.
>> This is highly desirable when you have more than 1 DC.
>> Please note that it's not the server side implementation of the DFS
>> replication protocol.
>> Here is the detail of the patches:
>> 0001-pidl-fix-errors-and-improve-idl-in-dfsblobs.patch, This is a few
>> fixes for idl that I made in december that were found during the
>> developpement of the patches.
>> 0002-s4-fix-trailling-whitespace-in-trans2.c.patch, This is a formatting
>> patch for trans2.c
>> 0003-s4-Implement-GET_DFS_REFERRAL-for-domain-referral-re.patch, This is
>> the implementation of trans2/getreferrals requests for domain referrals
>> requests.
>> 0004-s4-torture-test-Adapt-ndr-dfsblobs-torture-test-to-n.patch, This
>> patch is to adapt the torture test to the renaming of functions in
>> dfsblobs.idl
>> 0005-s4-torture-Add-tests-for-dfs-referrals-handling-in-S.patch, This
>> patch is to add unittest for smb/trans2 requests. It has also been
>> tested with success against w2k8r2 server.
>> 0006-s4-add-dfs-smbtorture-to-selftests.patch, This patch is to add the
>> smbtorture tests to make tests.
>> After I'm willing to change provision so that DC have the host msdfs =
>> yes parameter, andrew what's your point of view ?
>> Jeremy, the torture tests will be a good start for us to tests the
>> capacity of s3 to handle get dfs referral requests when "plugged" into s4.
>> Ps: this patches pass make test
> For me it crashes in samba4.dfs.domain
> metze

More information about the samba-technical mailing list