On 2020/03/20 04:18:44, Emmanuel Lécharny <elecha...@gmail.com> wrote: > Hi Francesco, > > I applied a fix for this bug (and another one that I found at the same > time). > > I may cut a release soon.
Hey, I was about to ask the JIRA number but a new release is way better, thanks :-) > On 19/03/2020 19:08, Emmanuel Lécharny wrote: > > Hi Francesco > > > > > > sorry for the latency... > > > > There is a clear bug in the way we handle a filter like > > (ObjectClass=top) in the search engine. As 'top' is never present in > > the index - for obvious reason : *every* single entry has such an > > attribute value -, the filter returns no candidate, so the > > encapsulating filter evaluation simply stops : > > > > (&(objectClass=top:[0])(cn=testLDAPGroup)) (note the [0] here). > > > > > > The code that does that is : > > > > private long getConjunctionScan( PartitionTxn partitionTxn, > > BranchNode node ) throws LdapException > > { > > long count = Long.MAX_VALUE; > > List<ExprNode> children = node.getChildren(); > > > > for ( ExprNode child : children ) > > { > > if ( ( count == 1 ) && ( child instanceof ScopeNode ) ) > > { > > // We can stop here > > break; > > } > > > > annotate( partitionTxn, child ); > > count = Math.min( ( ( Long ) child.get( COUNT_ANNOTATION ) > > ), count ); > > > > if ( count == 0 ) > > { > > // No need to continue <----- Obviously a bad idea > > in this very case... > > break; > > } > > } > > > > In your case, there is a workaround : changing your filter to be > > "(&(objectClass=*)(cn=testLDAPGroup))" > > > > > > I'll open a JIRA. > > > > > > Thanks for the report and the test case ! > > > > > > On 17/03/2020 15:02, Francesco Chicchiriccò wrote: > >> On 2020/03/15 14:46:27, Francesco Chicchiricc�� <ilgro...@apache.org> > >> wrote: > >>> On 2020/03/15 14:14:56, Emmanuel Lécharny <elecha...@gmail.com> wrote: > >>>> Hi Francesco, > >>>> > >>>> On 15/03/2020 14:49, Francesco Chicchiriccò wrote: > >>>>> Hi there, > >>>>> I am upgrading Apache DS from 2.0.0.AM25 to 2.0.0 and experiencing > >>>>> some troubles. > >>>> Hmmm, there is no such 2.0.0. > >>> Ah, sorry, I was meaning 2.0.0.AM26 of course. > >>> > >>>>> For example, this used to work fine (e.g. to find the group with > >>>>> the given cn) previously: > >>>>> > >>>>> ldapsearch -h localhost -p 1389 -D "uid=admin,ou=system" -x -W -b > >>>>> "ou=groups,o=isp" > >>>>> '(&(&(objectClass=top)(objectClass=groupOfUniqueNames))(cn=lastGroup3ae5600a))' > >>>>> > >>>>> cn > >>>>> > >>>>> Now this does not return any result; when I change the filter to > >>>>> > >>>>> '(&(objectClass=groupOfUniqueNames)(cn=lastGroup3ae5600a))' > >>>>> > >>>>> it works again. > >>>>> > >>>>> Also > >>>>> > >>>>> '(&(objectClass=top)(cn=lastGroup3ae5600a))' > >>>>> > >>>>> is working fine; so it seems that top is somehow disturbing. > >>>>> > >>>>> Any ideas? Thanks! > >>>> Do you have an env I can use to test that ? > >> Hi Emmanuel, > >> sorry it took so long to get something simpler to reproduce the problem. > >> > >> I have assembled at > >> > >> https://github.com/ilgrosso/apacheds > >> > >> Just clone and run > >> > >> mvn clean verify > >> > >> The tests executed are > >> > >> https://github.com/ilgrosso/apacheds/blob/master/src/test/java/net/tirasa/sample/apacheds/ApacheDSApplicationTests.java#L42 > >> > >> > >> > >> which runs with filter > >> > >> (&(objectClass=groupOfUniqueNames)(cn=testLDAPGroup)) > >> > >> and finds the group, and > >> > >> https://github.com/ilgrosso/apacheds/blob/master/src/test/java/net/tirasa/sample/apacheds/ApacheDSApplicationTests.java#L59 > >> > >> > >> > >> which runs with filter > >> > >> (&(objectClass=top)(cn=testLDAPGroup)) > >> > >> and does not find the group. > >> > >> The ApacheDS init is in > >> > >> https://github.com/ilgrosso/apacheds/blob/master/src/main/java/net/tirasa/sample/apacheds/ApacheDSStart.java#L193 > >> > >> > >> > >> Thanks for your support. > >> Regards. > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: users-unsubscr...@directory.apache.org > >> For additional commands, e-mail: users-h...@directory.apache.org > >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@directory.apache.org > For additional commands, e-mail: users-h...@directory.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@directory.apache.org For additional commands, e-mail: users-h...@directory.apache.org