On 11/16/2015 04:07 PM, Adrian Damian wrote:
What is the "size limit" you are referring to? Search size limit? ...
Yes, but the ACI code uses the search size limit when doing group evaluation.  You are hitting this limit, but I think you really need the fix I already mentioned.  So under cn=config, set nsslapd-sizelimt to a high value using ldapmodify.  Hopefully it works, but I'm not optimistic since this did required a code change to actually fix the underlying issue.

Regards,
Mark

This particular search only returns a few attributes of a single entry. We've used the client to list larger number of entries and it works fine.

Or is there a different configurable size limit? What should I look for?

Thanks,
Adrian

On 11/16/2015 12:23 PM, Mark Reynolds wrote:


On 11/16/2015 01:58 PM, Adrian Damian wrote:
Hi Mark,

Thanks for the quick reply. I don't exactly know how to read the logs but I've highlighted the parts that seem relevant.

The macro ACI is to allow read access to the members of a group on their own group:

aci: (target="ldap:///($dn),ou=Groups,ou=abc")(targetattr = "*
 ")(version 3.0; acl "Members group read"; allow(read,search,compare) groupdn=
 "ldap:///($dn),ou=Groups,ou=abc";)



Java evaluation of the ACI when it fails:

"
...

[16/Nov/2015:10:17:46 -0800] NSACLPlugin - 2. Evaluating ALLOW aci(15) " "Members group read""
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - aclutil_evaluate_macro for aci ' "Members group read"' index '15'
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - ACL info: found matched_val ( "Members group read") for aci index 15in macro ht
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - Evaluating user uid=stmairs,ou=users,ou=abc in group cn=jcmt-mjlsg14b,ou=Groups,ou=abc?
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - -- Not in uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - -- Not in cn=Configuration Administrators,ou=Groups,ou=TopologyManagement,o=NetscapeRoot
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - -- Not in uid=user,ou=Users,ou=abc
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - -- Not in cn=CadcDev,ou=abc
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - -- Not in cn=jcmt-mjlsg14b,ou=Groups,ou=abc
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - -- Not in uid=user1,ou=users,ou=abc
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - -- Not in uid=user2,ou=users,ou=abc
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - GroupEval:Looked at too many entries:(2, 10)
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - Evaluated ACL_DONT_KNOW
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - DS_LASGroupDnEval: Param group name:($dn),ou=Groups,ou=abc
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - Returning UNDEFINED for groupdn evaluation.

Okay this looks like:

https://fedorahosted.org/389/ticket/47704

Which is fixed in 1.3.1 and up, but not 1.2.11.  You can reopen the ticket asking if it can be backported to 1.2.11 (if possible - no promises). 

Perhaps the java client is setting a "size limit", while python and ldapsearch are not? 

Possible workaround would be change/remove the client size limit(if its set), and you can also try setting the size limit much higher in the DS configuration as well(like 30000 - this depends on the number of entries in the database, etc).  I'm not sure these "workarounds" will work, but for now it's worth trying.

Mark

...

[16/Nov/2015:10:17:46 -0800] NSACLPlugin - ***BEGIN ACL INFO[ Name: "Members group read"]***
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - ACL Index:15   ACL_ELEVEL:6
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - ACI type:(compare search read target_attr acltxt allow_rule )
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - ACI RULE type:(groupdn paramdn )
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - Slapi_Entry DN:ou=groups,ou=abc
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - ***END ACL INFO*****************************
...
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - Processed attr:uniqueMember for entry:cn=jcmt-mjlsg14b,ou=groups,ou=abc
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - 1. Evaluating ALLOW aci(14) " "Owner access and modify existing group""
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - Found READ SKIP in cache
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - 2. Evaluating ALLOW aci(15) " "Members group read""
[16/Nov/2015:10:17:46 -0800] NSACLPlugin - Found READ SKIP in cache


[16/Nov/2015:10:17:46 -0800] NSACLPlugin - conn=57208 op=4 (main): Deny read on entry(cn=jcmt-mjlsg14b,ou=groups,ou=abc).attr(uniqueMember) to proxy (uid=auser,ou=users,ou=abc): no aci matched the subject by aci(3): aciname= "Configuration Administrators Group", acidn="dc=abc"

"




Python or ldapseach execution of the same ACI:


"

[16/Nov/2015:10:29:32 -0800] NSACLPlugin - 2. Evaluating ALLOW aci(15) " "Members group read""
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - aclutil_evaluate_macro for aci ' "Members group read"' index '15'
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - ACL info: found matched_val ( "Members group read") for aci index 15in macro ht
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - Evaluating user uid=stmairs,ou=users,ou=abc in group cn=jcmt-mjlsg14b,ou=Groups,ou=abc?
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in cn=Configuration Administrators,ou=Groups,ou=TopologyManagement,o=NetscapeRoot
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in uid=user1,ou=Users,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in cn=CadcDev,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in cn=jcmt-mjlsg14b,ou=Groups,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in uid=user2,ou=users,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in uid=user3,ou=users,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in uid=user4,ou=users,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in uid=user5,ou=users,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in uid=user6,ou=users,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in uid=user7,ou=users,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in uid=user8,ou=users,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in uid=user9,ou=users,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- Not in uid=user10,ou=users,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - -- In cn=jcmt-gbs,ou=groups,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - Evaluated ACL_TRUE
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - Adding Group (cn=jcmt-gbs,ou=groups,ou=abc) ParentGroup (cn=jcmt-mjlsg14b,ou=Groups,ou=abc) to the IN GROUP List
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - Adding Group (cn=jcmt-mjlsg14b,ou=Groups,ou=abc) ParentGroup (NULL) to the IN GROUP List
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - DS_LASGroupDnEval: Param group name:($dn),ou=Groups,ou=abc





[16/Nov/2015:10:29:32 -0800] NSACLPlugin - ***BEGIN ACL INFO[ Name: "Members group read"]***
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - ACL Index:15   ACL_ELEVEL:6
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - ACI type:(compare search read target_attr acltxt allow_rule )
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - ACI RULE type:(groupdn paramdn )
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - Slapi_Entry DN:ou=groups,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - ***END ACL INFO*****************************


[16/Nov/2015:10:29:32 -0800] NSACLPlugin - Num of ALLOW Handles:6, DENY handles:0
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - Processed attr:uniqueMember for entry:cn=jcmt-mjlsg14b,ou=groups,ou=abc
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - 1. Evaluating ALLOW aci(14) " "Owner access and modify existing group""
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - Found READ SKIP in cache
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - 2. Evaluating ALLOW aci(15) " "Members group read""
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - Found READ ALLOW in cache
[16/Nov/2015:10:29:32 -0800] NSACLPlugin - conn=57315 op=1 (main): Allow read on entry(cn=jcmt-mjlsg14b,ou=groups,ou=abc).attr(uniqueMember) to proxy (uid=auser,ou=users,ou=abc): cached allow by aci(15)
"



Java right after running the Python client (when it succeeds):


"
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - 2. Evaluating ALLOW aci(20) " "Members group read""
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - aclutil_evaluate_macro for aci ' "Members group read"' index '20'
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - ACL info: found matched_val ( "Members group read") for aci index 20in macro ht
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - Evaluating user uid=stmairs,ou=users,ou=abc in group cn=jcmt-mjlsg14b,ou=Groups,ou=abc?
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - -- In cn=jcmt-gbs,ou=groups,ou=abc
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - -- In cn=jcmt-mjlsg14b,ou=Groups,ou=abc
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - Evaluated ACL_TRUE

...

[16/Nov/2015:10:41:43 -0800] NSACLPlugin - 2. Evaluating ALLOW aci(20) " "Members group read""
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - aclutil_evaluate_macro for aci ' "Members group read"' index '20'
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - ACL info: found matched_val ( "Members group read") for aci index 20in macro ht
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - Evaluating user uid=stmairs,ou=users,ou=abc in group cn=jcmt-mjlsg14b,ou=Groups,ou=abc?
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - -- In cn=jcmt-gbs,ou=groups,ou=abc
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - -- In cn=jcmt-mjlsg14b,ou=Groups,ou=abc
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - Evaluated ACL_TRUE
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - DS_LASGroupDnEval: Param group name:($dn),ou=Groups,ou=abc
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - conn=57465 op=52 (main): Allow read on entry(cn=jcmt-mjlsg14b,ou=admingroups,ou=abc).attr(nsUniqueId) to proxy (uid=stmairs,ou=users,ou=abc): allowed by aci(20): aciname= "Members group read", acidn="ou=admingroups,ou=abc"
...

[16/Nov/2015:10:41:43 -0800] NSACLPlugin - STAR Access allowed on attr:uniqueMember; entry:cn=jcmt-mjlsg14b,ou=admingroups,ou=abc
[16/Nov/2015:10:41:43 -0800] NSACLPlugin - conn=57465 op=52 (on attr): Allow read on entry(cn=jcmt-mjlsg14b,ou=admingroups,ou=abc).attr(uniqueMember) to proxy (uid=stmairs,ou=users,ou=abc): cached context/parent allow any attr

"



-bash-4.1$ rpm -qa | grep 389-ds-base
389-ds-base-libs-1.2.11.15-34.el6_5.x86_64
389-ds-base-debuginfo-1.2.11.15-34.el6_5.x86_64
389-ds-base-1.2.11.15-34.el6_5.x86_64


Thanks,
Adrian



On 11/16/2015 09:34 AM, Mark Reynolds wrote:
On 11/16/2015 12:30 PM, Adrian Damian wrote:
Hello 389 Gurus,

This is a very subtle issue that we are seeing on our LDAP server. 
Sometimes, the ACIs return different results for the same search 
executed from different clients (a Java client vs. a Python or the 
ldapsearch client). More specifically, the Java client does not get 
access to attributes that is supposed to see but the Python client 
does. What's even more strange is that after the Python client or 
ldapsearch client access, the Java client also starts working for a 
while and then stops again.

The only difference that we've seen in these two cases in the LDAP 
logs is that when it doesn't work, the Java client makes the server 
skip the ACI that grants access with the message: "Found READ SKIP in 
cache". After running the other clients the ACI in question is 
evaluated and everything works for a while before going back into the 
bad state.

Any ideas of how to fix this?
Adrian,

Can you provide access log snippets showing the java and python client 
searches?

What is the ACI(s) that impacts these searches?

Please get: rpm -qa | grep 389-ds-base

Thanks,
Mark
Thank you,
Adrian

Server version:

389-Directory/1.2.11.15 B2014.219.179

-- 
389 users mailing list
389-users@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/389-users
--
389 users mailing list
389-users@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/389-users



--
389 users mailing list
389-users@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/389-users




--
389 users mailing list
389-users@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/389-users