[Date Prev][Date Next]
Re: Pcache overlay bug or undocumented "feature"?
Daniel Montero Motilla wrote:
Hi, I'm obtaining a strange (almost for me) behaviour with pcache
overlay (openldap 2.3.27), I have a configuration similar to this one:
proxyattrset 0 uid cn sn mail description
proxyattrset 1 cn description
proxytemplate (&(objectClass=)(uid=)) 0 3600
proxytemplate (&(objectClass=)(cn=)) 1 3600
With this configuration, I perform this search:
(&(objectClass=groupOfNames)(cn=mygroup)) cn description
but I obtain "NOT ANSWERABLE" and "NOT CACHEABLE".
Digging on pcache.c, I see that the problem is that 'get_attr_set'
function doesn't look for a proxyattrset that _exactly_ matches with
my search attribute set, it instead looks for a proxyattrset that is a
_superset_ of the search attribute set.
Yes, that's a recent change. I guess we call it an undocumented feature,
please file an ITS against the documentation.
On my example, my search attribute set (cn, description) is a subset
of proxyattrset '0', so 'get_attr_set' returns '0'. Then, the
application looks for a proxytemplate whose proxyattrset equals the
one obtained with 'get_attr_set' (0), so it obtains the template
'(&(objectClass=)(uid=))' and compares it with my search template
'(&(objectClass=)(cn=))', so I get 'NOT CACHEABLE'.
As a workaround I have inverted the proxyattrset index numbers so
'get_attr_set' finds first the most specific proxyattrset, but i'm
curious about if this behaviour is the intended one or if I should
fill an ITS with a patch (the change in code would be minimal), what
do you think?
No, just delete the other proxyattrset directive, you don't need it at all.
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/