[Freeipa-devel] MemberOf and Referential Integrity plugin failures cause abort of operation

Rich Megginson rmeggins at redhat.com
Tue Sep 15 13:18:50 UTC 2015


On 09/15/2015 04:58 AM, Jan Cholasta wrote:
> On 15.9.2015 10:23, Tomas Babej wrote:
>> Hi,
>>
>> from DS 1.3.3, the memberOf and referential integrity plugins have been
>> converted to backend transaction plugins, which means that failures in
>> these plugins will propagate and cause abort of the operation that
>> triggered them. [1]
>>
>> I.e. in case of memberOf plugin, if a operation triggered an addition of
>> memberOf attribute, and that addition failed, the operation itself did
>> succeed in spite of this failure. This is no longer the case.

IMO the new transacted behavior is correct - the original operation and 
all of the triggered operations should succeed or fail together.

>>
>> We have been already hit by this issue in winsync agreement setup:
>>
>> https://bugzilla.redhat.com/show_bug.cgi?id=1262315
>>
>> However, there is little special about this case and there might be
>> multiple such entries in IPA which are added as group members,
>> but do not contain an objectclass which allows memberOf attribute.
>>
>> So we need to step back and think - are there any other entries where
>> this change of behaviour will hit us?
>
> As far as ipalib is concerned, these are the objects which may have 
> the memberOf attribute (with object class providing it in parentheses):
>
>     group (netstedGroup)
>     hbacsvc (ipaHBACService)
>     host (ipaHost)
>     hostgroup (netstedGroup)
>     netgroup (ipaNISNetgroup)
>     privilege (nestedGroup)
>     role (nestedGroup)
>     service (ipaService)
>     sudocmd (NONE)
>     user (inetUser)
>
> so memberOf needs to be added to ipaSudoCmd.
>
> The config plugin lists memberOf as an operational attribute, which I 
> guess is no longer the case?

It should never have been an operational attribute.  Perhaps this was a 
"hack" to workaround the fact that there were objects/objectclasses 
missing memberOf?

>
> Also, memberOf is excluded from replication in 
> ipaserver/install/replication.py.
>
By design - all servers are expected to have the same memberOf plugin 
configuration, and add memberOf locally.




More information about the Freeipa-devel mailing list