uniqueMember index
Dear Users, I have a specific question about uniqueMember AT. We have a hierarchy of groups and permissions with several group levels. To be able to fetch all permissions which belong to hierarchical structure of groups we are using a following query *(**&* *(*objectclass*=*groupOfUniqueNames*)* *(*uniqueMember*=*cn=group1*)* ) and so on until we get the lowest hierarchy level. Each request with such a query takes approx. 0.5 seconds, we have several levels and the performance is far from perfect. Our idea was to create an index for the field uniqueMember to able to accelerate the query. Unfortunately after creation of the index the before mentioned query brings empty result. I found the following mailing list entry https://users.directory.apache.narkive.com/YsRnb95m/apacheds-2-0-0-m7-index-problem with a similar problem, it looks like the problem is still not fixed or we are doing something wrong. Could anyone please help us with this question? Best regards, Sergey Mikhno Software Developer Galexis AG -- Sergey Mikhno
uniqueMember Index
Dear Emmanuel, I spent now more than a week trying to understand why uniqueMember index doesn't work and still have no progress in understanding the problem. With a defined index on uniqueMember my query brings empty result *(**&* *(*objectclass*=*groupOfUniqueNames*)* *(**|* *(*uniqueMember*=*cn=galexisLoginPOS*)* *(*uniqueMember*=*cn=customerGalexis*)* *(*uniqueMember*=*cn=customerAlloga*)* *(*uniqueMember*=*cn=isDemo*)* *)* *)* Without index the query brings correct results but is slow, 300ms. Is there any description about how to define an index on uniqueMember. We have several other non-standard indexed attributes and all of them are working. As I understand it should be possible to define an index on both member and uniqieMember. So I have 2 questions: 1. Is it correct that this query is slow because there is no index? 2. How should I define such an index? Below is the current index definition dn: ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti tions,ads-directoryServiceId=default,ou=config ads-indexHasReverse: FALSE entryCSN: 20190430090357.476000Z#00#001#00 objectClass: ads-index objectClass: top objectClass: ads-jdbmIndex objectClass: ads-base createTimestamp: 20190430090357.476Z creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system ads-indexAttributeId: uniqueMember ads-enabled: TRUE entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae Could you please advice? -- Sergey Mikhno
Re: uniqueMember index
Hi, The bug was in 2.0.0-M7, which is nearly 7 years old... have you tried with a newer version ? Le jeu. 25 avr. 2019 à 17:45, Sergey Mikhno a écrit : > Dear Users, > > I have a specific question about uniqueMember AT. > > We have a hierarchy of groups and permissions with several group levels. > > To be able to fetch all permissions which belong to hierarchical structure > of groups we are using a following query > > *(**&* > *(*objectclass*=*groupOfUniqueNames*)* > *(*uniqueMember*=*cn=group1*)* > ) > > and so on until we get the lowest hierarchy level. > > Each request with such a query takes approx. 0.5 seconds, we have several > levels and the performance is far from perfect. > > Our idea was to create an index for the field uniqueMember to able to > accelerate the query. > Unfortunately after creation of the index the before mentioned query brings > empty result. > > I found the following mailing list entry > > https://users.directory.apache.narkive.com/YsRnb95m/apacheds-2-0-0-m7-index-problem > with > a similar problem, it looks like the problem is still not fixed or we are > doing something wrong. > > Could anyone please help us with this question? > > Best regards, > > Sergey Mikhno > Software Developer > Galexis AG > > > -- > Sergey Mikhno > -- Regards, Cordialement, Emmanuel Lécharny www.iktek.com
Re: uniqueMember index
Hi Emmanuel, Thank you for your answer, Yes we are using 2.0.0-M24 now, the bug is only an example of our problem. Bit the behavior described is very similar to what we have now in 2.0.0-M24 I have also tried to repair the Apacheds using apacheds.sh repair, but it didn’t help. Thank you again Sergey Mikhno On Thu, 25 Apr 2019 at 17:51, Emmanuel Lecharny wrote: > Hi, > > The bug was in 2.0.0-M7, which is nearly 7 years old... have you tried with > a newer version ? > > Le jeu. 25 avr. 2019 à 17:45, Sergey Mikhno a > écrit : > > > Dear Users, > > > > I have a specific question about uniqueMember AT. > > > > We have a hierarchy of groups and permissions with several group levels. > > > > To be able to fetch all permissions which belong to hierarchical > structure > > of groups we are using a following query > > > > *(**&* > > *(*objectclass*=*groupOfUniqueNames*)* > > *(*uniqueMember*=*cn=group1*)* > > ) > > > > and so on until we get the lowest hierarchy level. > > > > Each request with such a query takes approx. 0.5 seconds, we have several > > levels and the performance is far from perfect. > > > > Our idea was to create an index for the field uniqueMember to able to > > accelerate the query. > > Unfortunately after creation of the index the before mentioned query > brings > > empty result. > > > > I found the following mailing list entry > > > > > https://users.directory.apache.narkive.com/YsRnb95m/apacheds-2-0-0-m7-index-problem > > with > > a similar problem, it looks like the problem is still not fixed or we are > > doing something wrong. > > > > Could anyone please help us with this question? > > > > Best regards, > > > > Sergey Mikhno > > Software Developer > > Galexis AG > > > > > > -- > > Sergey Mikhno > > > -- > Regards, > Cordialement, > Emmanuel Lécharny > www.iktek.com > -- Sergey Mikhno
Re: uniqueMember index
Hi Emmanuel, Today I tried to use GroupOfNames and member field for group membership and created an index for "member", that index looks to be working properly. Could you please tell me if there is still a bug with the uniqueMember Index? If there is no bug how can I create such an index and keep all my queries working. If there is a bug, perhaps I could convert all my groups into GroupOfNames, is there any simple way to do so? Thank you Best regards Sergey Mikhno Software Developer Galexis AG On Thu, Apr 25, 2019 at 5:57 PM Sergey Mikhno wrote: > Hi Emmanuel, > > Thank you for your answer, > Yes we are using 2.0.0-M24 now, the bug is only an example of our problem. > Bit the behavior described is very similar to what we have now in 2.0.0-M24 > > I have also tried to repair the Apacheds using apacheds.sh repair, but it > didn’t help. > > Thank you again > > Sergey Mikhno > > On Thu, 25 Apr 2019 at 17:51, Emmanuel Lecharny > wrote: > >> Hi, >> >> The bug was in 2.0.0-M7, which is nearly 7 years old... have you tried >> with >> a newer version ? >> >> Le jeu. 25 avr. 2019 à 17:45, Sergey Mikhno a >> écrit : >> >> > Dear Users, >> > >> > I have a specific question about uniqueMember AT. >> > >> > We have a hierarchy of groups and permissions with several group levels. >> > >> > To be able to fetch all permissions which belong to hierarchical >> structure >> > of groups we are using a following query >> > >> > *(**&* >> > *(*objectclass*=*groupOfUniqueNames*)* >> > *(*uniqueMember*=*cn=group1*)* >> > ) >> > >> > and so on until we get the lowest hierarchy level. >> > >> > Each request with such a query takes approx. 0.5 seconds, we have >> several >> > levels and the performance is far from perfect. >> > >> > Our idea was to create an index for the field uniqueMember to able to >> > accelerate the query. >> > Unfortunately after creation of the index the before mentioned query >> brings >> > empty result. >> > >> > I found the following mailing list entry >> > >> > >> https://users.directory.apache.narkive.com/YsRnb95m/apacheds-2-0-0-m7-index-problem >> > with >> > a similar problem, it looks like the problem is still not fixed or we >> are >> > doing something wrong. >> > >> > Could anyone please help us with this question? >> > >> > Best regards, >> > >> > Sergey Mikhno >> > Software Developer >> > Galexis AG >> > >> > >> > -- >> > Sergey Mikhno >> > >> -- >> Regards, >> Cordialement, >> Emmanuel Lécharny >> www.iktek.com >> > -- > Sergey Mikhno > -- Sergey Mikhno
Re: uniqueMember Index
Hi Sergey, I can positively confirm that there is a problem. I'm able to reproduce the issue you are facing in a unit test. I'm currently debugging the server, and hope to come with a quick answer (and hopefully a fix). On 30/04/2019 11:33, Sergey Mikhno wrote: Dear Emmanuel, I spent now more than a week trying to understand why uniqueMember index doesn't work and still have no progress in understanding the problem. With a defined index on uniqueMember my query brings empty result *(**&* *(*objectclass*=*groupOfUniqueNames*)* *(**|* *(*uniqueMember*=*cn=galexisLoginPOS*)* *(*uniqueMember*=*cn=customerGalexis*)* *(*uniqueMember*=*cn=customerAlloga*)* *(*uniqueMember*=*cn=isDemo*)* *)* *)* Without index the query brings correct results but is slow, 300ms. Is there any description about how to define an index on uniqueMember. We have several other non-standard indexed attributes and all of them are working. As I understand it should be possible to define an index on both member and uniqieMember. So I have 2 questions: 1. Is it correct that this query is slow because there is no index? 2. How should I define such an index? Below is the current index definition dn: ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti tions,ads-directoryServiceId=default,ou=config ads-indexHasReverse: FALSE entryCSN: 20190430090357.476000Z#00#001#00 objectClass: ads-index objectClass: top objectClass: ads-jdbmIndex objectClass: ads-base createTimestamp: 20190430090357.476Z creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system ads-indexAttributeId: uniqueMember ads-enabled: TRUE entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae Could you please advice?
Re: uniqueMember Index
Hi Emmanuel, Thank you very much for your quick response, Please let me know if you need more information. Best regards Sergey Mikhno Software Developer Galexis AG On Tue, Apr 30, 2019 at 3:59 PM Emmanuel Lécharny wrote: > Hi Sergey, > > > I can positively confirm that there is a problem. I'm able to reproduce > the issue you are facing in a unit test. > > I'm currently debugging the server, and hope to come with a quick answer > (and hopefully a fix). > > > On 30/04/2019 11:33, Sergey Mikhno wrote: > > Dear Emmanuel, > > > > I spent now more than a week trying to understand why uniqueMember index > > doesn't work and still have no progress in understanding the problem. > > > > With a defined index on uniqueMember my query brings empty result > > > > *(**&* > > > > *(*objectclass*=*groupOfUniqueNames*)* > > > > *(**|* > > > > *(*uniqueMember*=*cn=galexisLoginPOS*)* > > > > *(*uniqueMember*=*cn=customerGalexis*)* > > > > *(*uniqueMember*=*cn=customerAlloga*)* > > > > *(*uniqueMember*=*cn=isDemo*)* > > > > *)* > > > > *)* > > > > > > > > Without index the query brings correct results but is slow, 300ms. > > Is there any description about how to define an index on uniqueMember. > > > > We have several other non-standard indexed attributes and all of them are > > working. > > As I understand it should be possible to define an index on both member > and > > uniqieMember. > > > > So I have 2 questions: > > 1. Is it correct that this query is slow because there is no index? > > 2. How should I define such an index? > > > > Below is the current index definition > > dn: > > > ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti > > tions,ads-directoryServiceId=default,ou=config > > ads-indexHasReverse: FALSE > > entryCSN: 20190430090357.476000Z#00#001#00 > > objectClass: ads-index > > objectClass: top > > objectClass: ads-jdbmIndex > > objectClass: ads-base > > createTimestamp: 20190430090357.476Z > > creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system > > ads-indexAttributeId: uniqueMember > > ads-enabled: TRUE > > entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a > > entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae > > > > Could you please advice? > > > -- Sergey Mikhno
Re: uniqueMember Index
Ok, this a clear bug. The UniqueMemberComparator.compare() method is badly implemented, and returns either 0 or -1, which means we can't browse the index, as we never get a +1 (ie, provided uniqueMember is superior to the stored one). I'll get that fixed. On 30/04/2019 15:59, Emmanuel Lécharny wrote: Hi Sergey, I can positively confirm that there is a problem. I'm able to reproduce the issue you are facing in a unit test. I'm currently debugging the server, and hope to come with a quick answer (and hopefully a fix). On 30/04/2019 11:33, Sergey Mikhno wrote: Dear Emmanuel, I spent now more than a week trying to understand why uniqueMember index doesn't work and still have no progress in understanding the problem. With a defined index on uniqueMember my query brings empty result *(**&* *(*objectclass*=*groupOfUniqueNames*)* *(**|* *(*uniqueMember*=*cn=galexisLoginPOS*)* *(*uniqueMember*=*cn=customerGalexis*)* *(*uniqueMember*=*cn=customerAlloga*)* *(*uniqueMember*=*cn=isDemo*)* *)* *)* Without index the query brings correct results but is slow, 300ms. Is there any description about how to define an index on uniqueMember. We have several other non-standard indexed attributes and all of them are working. As I understand it should be possible to define an index on both member and uniqieMember. So I have 2 questions: 1. Is it correct that this query is slow because there is no index? 2. How should I define such an index? Below is the current index definition dn: ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti tions,ads-directoryServiceId=default,ou=config ads-indexHasReverse: FALSE entryCSN: 20190430090357.476000Z#00#001#00 objectClass: ads-index objectClass: top objectClass: ads-jdbmIndex objectClass: ads-base createTimestamp: 20190430090357.476Z creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system ads-indexAttributeId: uniqueMember ads-enabled: TRUE entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae Could you please advice?
Re: uniqueMember Index
Thank you again, Is it possible to get a fix for this issue, how should we go about it? It would be great to be able to test a bugfix in our environment. Best Regards Sergey On Tue, Apr 30, 2019 at 4:24 PM Emmanuel Lécharny wrote: > Ok, this a clear bug. The UniqueMemberComparator.compare() method is > badly implemented, and returns either 0 or -1, which means we can't > browse the index, as we never get a +1 (ie, provided uniqueMember is > superior to the stored one). > > I'll get that fixed. > > On 30/04/2019 15:59, Emmanuel Lécharny wrote: > > Hi Sergey, > > > > > > I can positively confirm that there is a problem. I'm able to > > reproduce the issue you are facing in a unit test. > > > > I'm currently debugging the server, and hope to come with a quick > > answer (and hopefully a fix). > > > > > > On 30/04/2019 11:33, Sergey Mikhno wrote: > >> Dear Emmanuel, > >> > >> I spent now more than a week trying to understand why uniqueMember index > >> doesn't work and still have no progress in understanding the problem. > >> > >> With a defined index on uniqueMember my query brings empty result > >> > >> *(**&* > >> > >> *(*objectclass*=*groupOfUniqueNames*)* > >> > >> *(**|* > >> > >> *(*uniqueMember*=*cn=galexisLoginPOS*)* > >> > >> *(*uniqueMember*=*cn=customerGalexis*)* > >> > >> *(*uniqueMember*=*cn=customerAlloga*)* > >> > >> *(*uniqueMember*=*cn=isDemo*)* > >> > >> *)* > >> > >> *)* > >> > >> > >> > >> Without index the query brings correct results but is slow, 300ms. > >> Is there any description about how to define an index on uniqueMember. > >> > >> We have several other non-standard indexed attributes and all of them > >> are > >> working. > >> As I understand it should be possible to define an index on both > >> member and > >> uniqieMember. > >> > >> So I have 2 questions: > >> 1. Is it correct that this query is slow because there is no index? > >> 2. How should I define such an index? > >> > >> Below is the current index definition > >> dn: > >> > ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti > > >> > >> tions,ads-directoryServiceId=default,ou=config > >> ads-indexHasReverse: FALSE > >> entryCSN: 20190430090357.476000Z#00#001#00 > >> objectClass: ads-index > >> objectClass: top > >> objectClass: ads-jdbmIndex > >> objectClass: ads-base > >> createTimestamp: 20190430090357.476Z > >> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system > >> ads-indexAttributeId: uniqueMember > >> ads-enabled: TRUE > >> entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a > >> entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae > >> > >> Could you please advice? > >> > -- Sergey Mikhno
Re: uniqueMember Index
I have created a JIRA ticket for this issue: https://issues.apache.org/jira/browse/DIRAPI-340 Incidentally, I also have a fix that I'm going to test and apply asap. (the fix is pretty straightforward) On 30/04/2019 16:29, Sergey Mikhno wrote: Thank you again, Is it possible to get a fix for this issue, how should we go about it? It would be great to be able to test a bugfix in our environment. Best Regards Sergey On Tue, Apr 30, 2019 at 4:24 PM Emmanuel Lécharny wrote: Ok, this a clear bug. The UniqueMemberComparator.compare() method is badly implemented, and returns either 0 or -1, which means we can't browse the index, as we never get a +1 (ie, provided uniqueMember is superior to the stored one). I'll get that fixed. On 30/04/2019 15:59, Emmanuel Lécharny wrote: Hi Sergey, I can positively confirm that there is a problem. I'm able to reproduce the issue you are facing in a unit test. I'm currently debugging the server, and hope to come with a quick answer (and hopefully a fix). On 30/04/2019 11:33, Sergey Mikhno wrote: Dear Emmanuel, I spent now more than a week trying to understand why uniqueMember index doesn't work and still have no progress in understanding the problem. With a defined index on uniqueMember my query brings empty result *(**&* *(*objectclass*=*groupOfUniqueNames*)* *(**|* *(*uniqueMember*=*cn=galexisLoginPOS*)* *(*uniqueMember*=*cn=customerGalexis*)* *(*uniqueMember*=*cn=customerAlloga*)* *(*uniqueMember*=*cn=isDemo*)* *)* *)* Without index the query brings correct results but is slow, 300ms. Is there any description about how to define an index on uniqueMember. We have several other non-standard indexed attributes and all of them are working. As I understand it should be possible to define an index on both member and uniqieMember. So I have 2 questions: 1. Is it correct that this query is slow because there is no index? 2. How should I define such an index? Below is the current index definition dn: ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti tions,ads-directoryServiceId=default,ou=config ads-indexHasReverse: FALSE entryCSN: 20190430090357.476000Z#00#001#00 objectClass: ads-index objectClass: top objectClass: ads-jdbmIndex objectClass: ads-base createTimestamp: 20190430090357.476Z creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system ads-indexAttributeId: uniqueMember ads-enabled: TRUE entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae Could you please advice?
Re: uniqueMember Index
Hi Emmanuel, I can see now that you have already fixed the problem. We have M24 running now, how can I use your fix in our environment? Or otherwise how can I build the latest snapshot to be able to verify it? Best regards Sergey Mikhno Software Developer Galexis AG On Tue, Apr 30, 2019 at 4:40 PM Emmanuel Lécharny wrote: > I have created a JIRA ticket for this issue: > https://issues.apache.org/jira/browse/DIRAPI-340 > > Incidentally, I also have a fix that I'm going to test and apply asap. > (the fix is pretty straightforward) > > > On 30/04/2019 16:29, Sergey Mikhno wrote: > > Thank you again, > > > > Is it possible to get a fix for this issue, how should we go about it? > > It would be great to be able to test a bugfix in our environment. > > > > Best Regards > > > > Sergey > > > > > > On Tue, Apr 30, 2019 at 4:24 PM Emmanuel Lécharny > > wrote: > > > >> Ok, this a clear bug. The UniqueMemberComparator.compare() method is > >> badly implemented, and returns either 0 or -1, which means we can't > >> browse the index, as we never get a +1 (ie, provided uniqueMember is > >> superior to the stored one). > >> > >> I'll get that fixed. > >> > >> On 30/04/2019 15:59, Emmanuel Lécharny wrote: > >>> Hi Sergey, > >>> > >>> > >>> I can positively confirm that there is a problem. I'm able to > >>> reproduce the issue you are facing in a unit test. > >>> > >>> I'm currently debugging the server, and hope to come with a quick > >>> answer (and hopefully a fix). > >>> > >>> > >>> On 30/04/2019 11:33, Sergey Mikhno wrote: > >>>> Dear Emmanuel, > >>>> > >>>> I spent now more than a week trying to understand why uniqueMember > index > >>>> doesn't work and still have no progress in understanding the problem. > >>>> > >>>> With a defined index on uniqueMember my query brings empty result > >>>> > >>>> *(**&* > >>>> > >>>> *(*objectclass*=*groupOfUniqueNames*)* > >>>> > >>>> *(**|* > >>>> > >>>> *(*uniqueMember*=*cn=galexisLoginPOS*)* > >>>> > >>>> *(*uniqueMember*=*cn=customerGalexis*)* > >>>> > >>>> *(*uniqueMember*=*cn=customerAlloga*)* > >>>> > >>>> *(*uniqueMember*=*cn=isDemo*)* > >>>> > >>>> *)* > >>>> > >>>> *)* > >>>> > >>>> > >>>> > >>>> Without index the query brings correct results but is slow, 300ms. > >>>> Is there any description about how to define an index on uniqueMember. > >>>> > >>>> We have several other non-standard indexed attributes and all of them > >>>> are > >>>> working. > >>>> As I understand it should be possible to define an index on both > >>>> member and > >>>> uniqieMember. > >>>> > >>>> So I have 2 questions: > >>>> 1. Is it correct that this query is slow because there is no index? > >>>> 2. How should I define such an index? > >>>> > >>>> Below is the current index definition > >>>> dn: > >>>> > >> > ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti > >> > >>>>tions,ads-directoryServiceId=default,ou=config > >>>> ads-indexHasReverse: FALSE > >>>> entryCSN: 20190430090357.476000Z#00#001#00 > >>>> objectClass: ads-index > >>>> objectClass: top > >>>> objectClass: ads-jdbmIndex > >>>> objectClass: ads-base > >>>> createTimestamp: 20190430090357.476Z > >>>> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system > >>>> ads-indexAttributeId: uniqueMember > >>>> ads-enabled: TRUE > >>>> entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a > >>>> entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae > >>>> > >>>> Could you please advice? > >>>> > > > -- Sergey Mikhno
Re: uniqueMember Index
Hi Emmanuel, We built the trunk today and the results are as follows: UniqueMember query without index has become faster, the same query with the index gives empty result back. Is it possible that our index definition is wrong? We are defining the index in Apache Directory Studio. The Comparator looks to be correct. What can be the problem? Best regards Sergey Mikhno Software Developer Galexis AG On Wed, May 1, 2019 at 3:01 PM Sergey Mikhno wrote: > Hi Emmanuel, > > I can see now that you have already fixed the problem. > We have M24 running now, how can I use your fix in our environment? > Or otherwise how can I build the latest snapshot to be able to verify it? > > Best regards > > Sergey Mikhno > Software Developer > Galexis AG > > > On Tue, Apr 30, 2019 at 4:40 PM Emmanuel Lécharny > wrote: > >> I have created a JIRA ticket for this issue: >> https://issues.apache.org/jira/browse/DIRAPI-340 >> >> Incidentally, I also have a fix that I'm going to test and apply asap. >> (the fix is pretty straightforward) >> >> >> On 30/04/2019 16:29, Sergey Mikhno wrote: >> > Thank you again, >> > >> > Is it possible to get a fix for this issue, how should we go about it? >> > It would be great to be able to test a bugfix in our environment. >> > >> > Best Regards >> > >> > Sergey >> > >> > >> > On Tue, Apr 30, 2019 at 4:24 PM Emmanuel Lécharny >> > wrote: >> > >> >> Ok, this a clear bug. The UniqueMemberComparator.compare() method is >> >> badly implemented, and returns either 0 or -1, which means we can't >> >> browse the index, as we never get a +1 (ie, provided uniqueMember is >> >> superior to the stored one). >> >> >> >> I'll get that fixed. >> >> >> >> On 30/04/2019 15:59, Emmanuel Lécharny wrote: >> >>> Hi Sergey, >> >>> >> >>> >> >>> I can positively confirm that there is a problem. I'm able to >> >>> reproduce the issue you are facing in a unit test. >> >>> >> >>> I'm currently debugging the server, and hope to come with a quick >> >>> answer (and hopefully a fix). >> >>> >> >>> >> >>> On 30/04/2019 11:33, Sergey Mikhno wrote: >> >>>> Dear Emmanuel, >> >>>> >> >>>> I spent now more than a week trying to understand why uniqueMember >> index >> >>>> doesn't work and still have no progress in understanding the problem. >> >>>> >> >>>> With a defined index on uniqueMember my query brings empty result >> >>>> >> >>>> *(**&* >> >>>> >> >>>> *(*objectclass*=*groupOfUniqueNames*)* >> >>>> >> >>>> *(**|* >> >>>> >> >>>> *(*uniqueMember*=*cn=galexisLoginPOS*)* >> >>>> >> >>>> *(*uniqueMember*=*cn=customerGalexis*)* >> >>>> >> >>>> *(*uniqueMember*=*cn=customerAlloga*)* >> >>>> >> >>>> *(*uniqueMember*=*cn=isDemo*)* >> >>>> >> >>>> *)* >> >>>> >> >>>> *)* >> >>>> >> >>>> >> >>>> >> >>>> Without index the query brings correct results but is slow, 300ms. >> >>>> Is there any description about how to define an index on >> uniqueMember. >> >>>> >> >>>> We have several other non-standard indexed attributes and all of them >> >>>> are >> >>>> working. >> >>>> As I understand it should be possible to define an index on both >> >>>> member and >> >>>> uniqieMember. >> >>>> >> >>>> So I have 2 questions: >> >>>> 1. Is it correct that this query is slow because there is no index? >> >>>> 2. How should I define such an index? >> >>>> >> >>>> Below is the current index definition >> >>>> dn: >> >>>> >> >> >> ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti >> >> >> >>>>tions,ads-directoryServiceId=default,ou=config >> >>>> ads-indexHasReverse: FALSE >> >>>> entryCSN: 20190430090357.476000Z#00#001#00 >> >>>> objectClass: ads-index >> >>>> objectClass: top >> >>>> objectClass: ads-jdbmIndex >> >>>> objectClass: ads-base >> >>>> createTimestamp: 20190430090357.476Z >> >>>> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system >> >>>> ads-indexAttributeId: uniqueMember >> >>>> ads-enabled: TRUE >> >>>> entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a >> >>>> entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae >> >>>> >> >>>> Could you please advice? >> >>>> >> > >> > > > -- > Sergey Mikhno > -- Sergey Mikhno
Re: uniqueMember Index
Hi Emmanuel, I wanted to inform you what are the results of our testing. 1. Starting the Release AM25 throws an Exception (ClassNotFounfException DeepTrimCachingNormalizingComparator) 2. AM25-SNAPSHOT starts normally but we cannot use uniqueMember index, because the query brings empty result. 3. M24 works OK with 2 changes - your commit f995af78cca156071ab30f00a6615bd82911c4a1 and one more fix (compareTo method from 2.0.0AM2), we can use uniqueMember index. 4. directory-server build has Test problems: Failed tests: NullPointerException UberJarMainTest.repairTest:208 UberJarMainTest.serviceInstanceTest:184 Could you please advice, what could be wrong? Sergey Mikhno Software Developer Galexis AG On Tue, Apr 30, 2019 at 11:33 AM Sergey Mikhno wrote: > Dear Emmanuel, > > I spent now more than a week trying to understand why uniqueMember index > doesn't work and still have no progress in understanding the problem. > > With a defined index on uniqueMember my query brings empty result > > *(**&* > > *(*objectclass*=*groupOfUniqueNames*)* > > *(**|* > > *(*uniqueMember*=*cn=galexisLoginPOS*)* > > *(*uniqueMember*=*cn=customerGalexis*)* > > *(*uniqueMember*=*cn=customerAlloga*)* > > *(*uniqueMember*=*cn=isDemo*)* > > *)* > > *)* > > > > Without index the query brings correct results but is slow, 300ms. > Is there any description about how to define an index on uniqueMember. > > We have several other non-standard indexed attributes and all of them are > working. > As I understand it should be possible to define an index on both member > and uniqieMember. > > So I have 2 questions: > 1. Is it correct that this query is slow because there is no index? > 2. How should I define such an index? > > Below is the current index definition > dn: > ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti > tions,ads-directoryServiceId=default,ou=config > ads-indexHasReverse: FALSE > entryCSN: 20190430090357.476000Z#00#001#00 > objectClass: ads-index > objectClass: top > objectClass: ads-jdbmIndex > objectClass: ads-base > createTimestamp: 20190430090357.476Z > creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system > ads-indexAttributeId: uniqueMember > ads-enabled: TRUE > entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a > entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae > > Could you please advice? > > -- > Sergey Mikhno > -- Sergey Mikhno
Re: uniqueMember Index
Hi Emmanuel, Could you please give me some feedback on my questions. 1. Why do we have a ClassNotFounfException DeepTr imCachingNormalizingComparator when starting our ApacheDS server with AM25 Release jar. ( https://www-eu.apache.org/dist//directory/apacheds/dist/2.0.0.AM25/apacheds-2.0.0.AM25.zip ) 2. Is it important that we have one failing test UberJarMainTest.repairTest, I did some debugging and found that server sends INSUFFICIENT_ACCESS_RIGHTS Response, that is why NullPointerException occurs. Best Regards Sergey Mikhno Software Developer Galexis AG On Fri, May 3, 2019 at 3:08 PM Sergey Mikhno wrote: > Hi Emmanuel, > > I wanted to inform you what are the results of our testing. > 1. Starting the Release AM25 throws an Exception (ClassNotFounfException > DeepTrimCachingNormalizingComparator) > 2. AM25-SNAPSHOT starts normally but we cannot use uniqueMember index, > because the query brings empty result. > 3. M24 works OK with 2 changes - your commit > f995af78cca156071ab30f00a6615bd82911c4a1 > and one more fix (compareTo method from 2.0.0AM2), we can use > uniqueMember index. > 4. directory-server build has Test problems: Failed tests: > NullPointerException > UberJarMainTest.repairTest:208 > UberJarMainTest.serviceInstanceTest:184 > > Could you please advice, what could be wrong? > > > Sergey Mikhno > Software Developer > Galexis AG > > > On Tue, Apr 30, 2019 at 11:33 AM Sergey Mikhno > wrote: > >> Dear Emmanuel, >> >> I spent now more than a week trying to understand why uniqueMember index >> doesn't work and still have no progress in understanding the problem. >> >> With a defined index on uniqueMember my query brings empty result >> >> *(**&* >> >> *(*objectclass*=*groupOfUniqueNames*)* >> >> *(**|* >> >> *(*uniqueMember*=*cn=galexisLoginPOS*)* >> >> *(*uniqueMember*=*cn=customerGalexis*)* >> >> *(*uniqueMember*=*cn=customerAlloga*)* >> >> *(*uniqueMember*=*cn=isDemo*)* >> >> *)* >> >> *)* >> >> >> >> Without index the query brings correct results but is slow, 300ms. >> Is there any description about how to define an index on uniqueMember. >> >> We have several other non-standard indexed attributes and all of them are >> working. >> As I understand it should be possible to define an index on both member >> and uniqieMember. >> >> So I have 2 questions: >> 1. Is it correct that this query is slow because there is no index? >> 2. How should I define such an index? >> >> Below is the current index definition >> dn: >> ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti >> tions,ads-directoryServiceId=default,ou=config >> ads-indexHasReverse: FALSE >> entryCSN: 20190430090357.476000Z#00#001#00 >> objectClass: ads-index >> objectClass: top >> objectClass: ads-jdbmIndex >> objectClass: ads-base >> createTimestamp: 20190430090357.476Z >> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system >> ads-indexAttributeId: uniqueMember >> ads-enabled: TRUE >> entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a >> entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae >> >> Could you please advice? >> >> -- >> Sergey Mikhno >> > > > -- > Sergey Mikhno > -- Sergey Mikhno
Re: uniqueMember Index
Sorry, was busy on something else. Will have a look at your issue tonite. Le mar. 7 mai 2019 à 13:51, Sergey Mikhno a écrit : > Hi Emmanuel, > > Could you please give me some feedback on my questions. > > 1. Why do we have a ClassNotFounfException DeepTr > imCachingNormalizingComparator when starting our ApacheDS server with > AM25 Release jar. ( > https://www-eu.apache.org/dist//directory/apacheds/dist/2.0.0.AM25/apacheds-2.0.0.AM25.zip > ) > 2. Is it important that we have one failing test UberJarMainTest.repairTest, > I did some debugging and found that server sends INSUFFICIENT_ACCESS_RIGHTS > Response, that is why NullPointerException occurs. > > Best Regards > > Sergey Mikhno > Software Developer > Galexis AG > > > On Fri, May 3, 2019 at 3:08 PM Sergey Mikhno > wrote: > >> Hi Emmanuel, >> >> I wanted to inform you what are the results of our testing. >> 1. Starting the Release AM25 throws an Exception (ClassNotFounfException >> DeepTrimCachingNormalizingComparator) >> 2. AM25-SNAPSHOT starts normally but we cannot use uniqueMember index, >> because the query brings empty result. >> 3. M24 works OK with 2 changes - your commit >> f995af78cca156071ab30f00a6615bd82911c4a1 >> and one more fix (compareTo method from 2.0.0AM2), we can use >> uniqueMember index. >> 4. directory-server build has Test problems: Failed tests: >> NullPointerException >> UberJarMainTest.repairTest:208 >> UberJarMainTest.serviceInstanceTest:184 >> >> Could you please advice, what could be wrong? >> >> >> Sergey Mikhno >> Software Developer >> Galexis AG >> >> >> On Tue, Apr 30, 2019 at 11:33 AM Sergey Mikhno >> wrote: >> >>> Dear Emmanuel, >>> >>> I spent now more than a week trying to understand why uniqueMember index >>> doesn't work and still have no progress in understanding the problem. >>> >>> With a defined index on uniqueMember my query brings empty result >>> >>> *(**&* >>> >>> *(*objectclass*=*groupOfUniqueNames*)* >>> >>> *(**|* >>> >>> *(*uniqueMember*=*cn=galexisLoginPOS*)* >>> >>> *(*uniqueMember*=*cn=customerGalexis*)* >>> >>> *(*uniqueMember*=*cn=customerAlloga*)* >>> >>> *(*uniqueMember*=*cn=isDemo*)* >>> >>> *)* >>> >>> *)* >>> >>> >>> >>> Without index the query brings correct results but is slow, 300ms. >>> Is there any description about how to define an index on uniqueMember. >>> >>> We have several other non-standard indexed attributes and all of them >>> are working. >>> As I understand it should be possible to define an index on both member >>> and uniqieMember. >>> >>> So I have 2 questions: >>> 1. Is it correct that this query is slow because there is no index? >>> 2. How should I define such an index? >>> >>> Below is the current index definition >>> dn: >>> ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti >>> tions,ads-directoryServiceId=default,ou=config >>> ads-indexHasReverse: FALSE >>> entryCSN: 20190430090357.476000Z#00#001#00 >>> objectClass: ads-index >>> objectClass: top >>> objectClass: ads-jdbmIndex >>> objectClass: ads-base >>> createTimestamp: 20190430090357.476Z >>> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system >>> ads-indexAttributeId: uniqueMember >>> ads-enabled: TRUE >>> entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a >>> entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae >>> >>> Could you please advice? >>> >>> -- >>> Sergey Mikhno >>> >> >> >> -- >> Sergey Mikhno >> > > > -- > Sergey Mikhno > -- Regards, Cordialement, Emmanuel Lécharny www.iktek.com
Re: uniqueMember Index
On 07/05/2019 13:51, Sergey Mikhno wrote: Hi Emmanuel, Could you please give me some feedback on my questions. 1. Why do we have a ClassNotFounfException DeepTrimCachingNormalizingComparator when starting our ApacheDS server with AM25 Release jar. (https://www-eu.apache.org/dist//directory/apacheds/dist/2.0.0.AM25/apacheds-2.0.0.AM25.zip) This is a LDAP API 1.0 class, it has been removed in LDAP API 2.0, which is used by apacheds 2.0.0-AM25. That means you are using the old schema, which is stored on disk (comparator are loaded using reflection, based on the content of the schema files, which are stored in ldif files: version: 1 dn: m-oid=1.3.6.1.4.1.4203.1.2.1,ou=comparators,cn=nis,ou=schema m-oid: 1.3.6.1.4.1.4203.1.2.1 m-fqcn: org.apache.directory.api.ldap.model.schema.comparators.DeepTrimCachingNormalizingComparator objectclass: metaComparator objectclass: metaTop objectclass: top creatorsname: uid=admin,ou=system) You should remove everything you have in the cn=schema directory before starting the server. 2. Is it important that we have one failing test UberJarMainTest.repairTest, I did some debugging and found that server sends INSUFFICIENT_ACCESS_RIGHTS Response, that is why NullPointerException occurs. Best Regards Sergey Mikhno Software Developer Galexis AG On Fri, May 3, 2019 at 3:08 PM Sergey Mikhno <mailto:sergey.mik...@gmail.com>> wrote: Hi Emmanuel, I wanted to inform you what are the results of our testing. 1. Starting the Release AM25 throws an Exception (ClassNotFounfException DeepTrimCachingNormalizingComparator) 2. AM25-SNAPSHOT starts normally but we cannot use uniqueMember index, because the query brings empty result. 3. M24 works OK with 2 changes - your commit f995af78cca156071ab30f00a6615bd82911c4a1 and one more fix (compareTo method from 2.0.0AM2), we can use uniqueMember index. 4. directory-server build has Test problems: Failed tests: NullPointerException UberJarMainTest.repairTest:208 UberJarMainTest.serviceInstanceTest:184 Could you please advice, what could be wrong? Sergey Mikhno Software Developer Galexis AG On Tue, Apr 30, 2019 at 11:33 AM Sergey Mikhno mailto:sergey.mik...@gmail.com>> wrote: Dear Emmanuel, I spent now more than a week trying to understand why uniqueMember index doesn't work and still have no progress in understanding the problem. With a defined index on uniqueMember my query brings empty result *(**&* *(*objectclass*=*groupOfUniqueNames*)* *(**|* *(*uniqueMember*=*cn=galexisLoginPOS*)* *(*uniqueMember*=*cn=customerGalexis*)* *(*uniqueMember*=*cn=customerAlloga*)* *(*uniqueMember*=*cn=isDemo*)* *)* *)* Without index the query brings correct results but is slow, 300ms. Is there any description about how to define an index on uniqueMember. We have several other non-standard indexed attributes and all of them are working. As I understand it should be possible to define an index on both member and uniqieMember. So I have 2 questions: 1. Is it correct that this query is slow because there is no index? 2. How should I define such an index? Below is the current index definition dn: ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti tions,ads-directoryServiceId=default,ou=config ads-indexHasReverse: FALSE entryCSN: 20190430090357.476000Z#00#001#00 objectClass: ads-index objectClass: top objectClass: ads-jdbmIndex objectClass: ads-base createTimestamp: 20190430090357.476Z creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system ads-indexAttributeId: uniqueMember ads-enabled: TRUE entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae Could you please advice? -- Sergey Mikhno -- Sergey Mikhno -- Sergey Mikhno