[Date Prev][Date Next] [Chronological] [Thread] [Top]

concurrency problems with "set=" directive



The problem appeared when I wanted to migrate my directory from openLdap 2.0.27 (redhat 7.X) to openLdap 2.0.27 (redhat 9).
When I run requests on concurrency, results becomes wrong, that means that instead of finding 5 results (for example) it gonna return me 0 and somethimes 1 or 2 rows.
I run concurrency by starting two shell scripts (on 2 différent machines) executing loop on ldapsearch 1000 times.


My directory contains users and lists of people. I want to allow users to see people only if they have "myattribut" set to "yes" so I'm using directive "Set=" in my acl to filter output :

-- slapd.conf --
...
attributetype ( 1.1.2.4.6 NAME ( 'myattribut' ) SUP name )
...
access to dn.regex="ou=level2,o=level1$"
   by set="user/myattribut & [yes]" read
...

In my slapd.conf, I've tried several config by playing with "concurrency", "threads", "cachesize", "dbcachesize" but none solves my problem.

Remarque on the case "concurrency 1" and "threads 1" : whereas in the others context the problem appears as soon as I start my second shell script, in this particular case, the concurrency problem appears later, after many hundreds of requests.

Just another point, after the result be corrupted, it stays as is even if I start only one shell script.

Have you any idea ?

Thanks and Regards