On 2020/03/20 04:18:44, Emmanuel Lécharny <[email protected]> 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�� <[email protected]>
> >> wrote:
> >>> On 2020/03/15 14:14:56, Emmanuel Lécharny <[email protected]> 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: [email protected]
> >> For additional commands, e-mail: [email protected]
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]