Acho que um dos meus clientes LDAP está atingindo um limite de paginação no OpenLDAP. O erro específico que o cliente vê é a seguinte coisa de Java:
REASON: Caught exception running LDAP sync.
[LDAP: error code 2 - paged results cookie is invalid];
nested exception is javax.naming.CommunicationException:
[LDAP: error code 2 - paged results cookie is invalid];
remaining name 'dc=example,dc=com'
Pesquisando por esse erro, surgiu uma discussão sobre paginação LDAP e limites relevantes. Este documento sobre limites do OpenLDAP menciona olcSizeLimit
e size.pr
.
Consegui alterar meu olcSizeLimit de 500 para -1 usando este ldif:
dn: cn=config
changetype: modify
replace: olcSizeLimit
olcSizeLimit: -1
Infelizmente, meu cliente ainda está vendo seu problema de paginação.
size.pr
é uma configuração do slapd.conf, enquanto o meu OpenLDAP usa o slapd.d. Depois de percorrer o esquema do LDAP, encontrei o olcDbClientPr
, que é descrito como 'PagedResults handling'
. Além disso, veja como está descrito no código-fonte do OpenLDAP :
{ "client-pr", "accept-unsolicited|disable|<size>", 2, 2, 0,
ARG_MAGIC|LDAP_BACK_CFG_CLIENT_PR,
meta_back_cf_gen, "( OLcfgDbAt:3.111 "
"NAME 'olcDbClientPr' "
"DESC 'PagedResults handling' "
"SYNTAX OMsDirectoryString "
"SINGLE-VALUE )",
NULL, NULL },
No pressuposto de que olcDbClientPr é a mesma coisa que size.pr, como configuro?
Eu tentei isso:
dn: cn=config
changetype: modify
replace: olcDbClientPr
olcDbClientPr: -1
Isso gera esse erro:
modifying entry "cn=config"
ldap_modify: Object class violation (65)
additional info: attribute 'olcDbClientPr' not allowed
Caso seja relevante, aqui está o conteúdo do meu diretório cn=config
:
# ls /etc/openldap/slapd.d/cn=config/
cn=module{0}.ldif olcDatabase={0}config.ldif olcDatabase={1}hdb.ldif
cn=schema olcDatabase={-1}frontend.ldif olcDatabase={1}monitor.ldif
cn=schema.ldif olcDatabase={1}hdb