Eu tenho um grupo com ~ 40.000 membros. Estou tentando excluir um memberUid
dele.
Este é meu changeset:
dn: uid=foobar,ou=People,dc=example,dc=com
changetype: delete
dn: cn=foobar,ou=Group,dc=example,dc=com
changetype: delete
dn: cn=giantgroup,ou=Group,dc=example,dc=com
changetype: modify
delete: memberUid
memberUid: foobar
Esta é a minha invocação:
ldapmodify -c -x -w 'password' -D cn=admin,dc=example,dc=com -f delete.ldif
Esta é a saída (uma vez que eu já o executei várias vezes, então o usuário e o grupo do usuário já foram excluídos):
deleting entry "uid=foobar,ou=People,dc=example,dc=com"
ldap_delete: No such object (32)
matched DN: ou=People,dc=example,dc=com
deleting entry "cn=foobar,ou=Group,dc=example,dc=com"
ldap_delete: No such object (32)
matched DN: ou=Group,dc=example,dc=com
modifying entry "cn=giantgroup,ou=Group,dc=example,dc=com"
ldap_modify: Other (e.g., implementation specific) error (80)
Como depuro ldap_modify: Other (e.g., implementation specific) error (80)
? Este é um servidor LDAP muito ativo, portanto, a ativação da saída de depuração do servidor é avassaladora e não sei ao certo o que procurar.
Atualização: erro no log slapd:
5afb42f3 bdb(dc=example,dc=com): Lock table is out of available lock entries
5afb42f3 => bdb_idl_insert_key: c_get failed: Cannot allocate memory (12)
5afb42f3 conn=1005 op=3: attribute "memberUid" index add failure
Mais diagnósticos desta postagem do blog :
# db_stat -h /var/lib/ldap/ -c | grep "Maximum number of locks"
1500 Maximum number of locks possible
1511 Maximum number of locks at any one time
14 Maximum number of locks in any one bucket
422 Maximum number of locks stolen by for an empty partition
48 Maximum number of locks stolen for any one partition
Com base nisso, qual seria um bom valor para set_lk_max_locks
? 40000? E há uma maneira recomendada de alterar esse valor para um servidor OpenLDAP em execução?
Mudei a seguinte pergunta aqui: Como eu mudo o número máximo de bloqueios para o OpenLDAP bdb?