Daniel Jung wrote:
Hi wonderful ppl at openldap- Running 2.4.37 - on centos 6.4
using following ldif to update olcDbConfig dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcDbConfig olcDbConfig: set_lg_max 10485760 olcDbConfig: set_lg_regionmax 262144 olcDbConfig: set_lg_bsize 2097152 olcDbConfig: set_lg_dir /var/lib/ldap/ olcDbConfig: set_lk_max_locks 8192 olcDbConfig: set_lk_max_objects 8192 olcDbConfig: set_flags DB_LOG_AUTOREMOVE olcDbConfig: set_tas_spins 1
ldapmodifyx -d 1 -h localhost -D 'cn=Manager,cn=config' -W -f /var/tmp/ldif
Getting the following error res_errno: 80, res_error: <failed to reopen database, rc=22>, res_matched: <> ldap_free_request (origid 2, msgid 2) ldap_parse_result ber_scanf fmt ({iAA) ber: ber_scanf fmt (}) ber: ldap_msgfree ldap_err2string ldap_modify: Other (e.g., implementation specific) error (80) additional info: failed to reopen database, rc=22
Going through the list lead me to believe that changes will be applied after the restart? but didnt say it causes an error. Also does olcDbNoSync play a role here ?
The change is applied immediately, there should not be any restart required. Unfortunately, it seems like the changes you applied were invalid for the version of BerkeleyDB you're using. Your LDIF worked perfectly fine for me, using BDB 5.3.21.
Another possibility is that the directory you specified for set_lg_dir was invalid, didn't exist, or you didn't have permissions to write it. One further possibility is that you were changing this value - in that case, you need to make sure to manually move all of the BDB logfiles from the old location to the new location first, otherwise BDB won't be able to find them and it will think the BDB environment is corrupted.
Using the -d debug flag on the client doesn't tell you anything useful though, you need to use -d on slapd to see what the actual error was.