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