samba-4.3.6 and talloc-2.1.6

Stefan Metzmacher metze at samba.org
Sun Mar 13 18:53:10 UTC 2016


Hi Andrew,

>> samba-tool domain provision --realm=test.alt --domain test 
>> --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc 
>> --use-rfc2307 --use-xattrs=yes
>>
>> I got error:
>> Fixing provision GUIDs
>> ERROR(runtime): uncaught exception - pytalloc_reference_ex() called
>> for 
>> object type not based on talloc
>>    File "/usr/lib64/python2.7/site
>> -packages/samba/netcmd/__init__.py", 
>> line 175, in _run
>>      return self.run(*args, **kwargs)
>>    File "/usr/lib64/python2.7/site-packages/samba/netcmd/domain.py", 
>> line 442, in run
>>      nosync=ldap_backend_nosync, ldap_dryrun_mode=ldap_dryrun_mode)
>>    File 
>> "/usr/lib64/python2.7/site-packages/samba/provision/__init__.py",
>> line 
>> 2172, in provision
>>      skip_sysvolacl=skip_sysvolacl)
>>    File 
>> "/usr/lib64/python2.7/site-packages/samba/provision/__init__.py",
>> line 
>> 1864, in provision_fill
>>      attrs=['defaultObjectCategory'])
>>    File "/usr/lib64/python2.7/site-packages/samba/dbchecker.py", line
>> 138, in check_database
>>      error_count += self.check_object(object.dn, attrs=attrs)
>>    File "/usr/lib64/python2.7/site-packages/samba/dbchecker.py", line
>> 1358, in check_object
>>      normalised = 
>> self.samdb.dsdb_normalise_attributes(self.samdb_schema, attrname,
>> [val])
>>    File "/usr/lib64/python2.7/site-packages/samba/samdb.py", line
>> 672, 
>> in dsdb_normalise_attributes
>>      return dsdb._dsdb_normalise_attributes(ldb, ldap_display_name, 
>> ldif_elements)
>>
>> What policy of using new version of libraries for stable version of 
>> Samba? Can I fix domain provision with talloc-2.1.6 for samba-4.3.6?
> 
> Versions less than Samba git master are buggy with respect to talloc
> handling in the dsdb python bindings, and finally the new talloc
> notices that.
> 
> The purpose of this new talloc version was to notice this and still be
> backward compatible with correct users, but incorrect users (including
> all released Samba versions) will get this message.  They only worked
> by accident (two structures had the same layout for the first few
> elements).
> 
> In short, it means we need to get the matching Samba fix for this
> backported. 

I think we should try to make keep old incorrect callers working
(if somehow possible) and make a change to talloc.

I think we should fallback to assume an implicit cast to
pytalloc_Object. Maybe it's enough to check tp_basicsize and/or
tp_base.

And have a method similar to talloc.enable_null_tracking(),
maybe called talloc.pytalloc_enable_strict_type_checking()
that will prevent the fallback.

Then we should also include the type name (including info about tp_base
and tp_basicsize)
in the raised exception, the following doesn't give enough information:

pytalloc_reference_ex() called for object type not based on talloc

metze


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20160313/b9f4f0e4/signature.sig>


More information about the samba-technical mailing list