У меня есть группа примерно из 40 000 участников. Я пытаюсь удалить memberUid
от него.
Это мой набор изменений:
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
Это мой призыв:
ldapmodify -c -x -w 'password' -D cn=admin,dc=example,dc=com -f delete.ldif
Это результат (когда я уже запускал его несколько раз, поэтому пользователь и группа пользователей уже удалены):
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)
Как мне отлаживать ldap_modify: Other (e.g., implementation specific) error (80)
? Это очень активный сервер LDAP, поэтому включение вывода отладки сервера является непосильной задачей, и я не уверен, что искать с помощью grep.
Обновление: ошибка в журнале 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
Больше диагностики из этого сообщения в блоге:
# 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
Исходя из этого, что было бы хорошим соотношением цены и качества set_lk_max_locks
быть? 40000? И есть ли рекомендуемый способ изменить это значение для работающего сервера OpenLDAP?
Я переместил сюда следующий вопрос: Как изменить максимальное количество блокировок для OpenLDAP bdb?