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

Re: Error while updating olcDbConfig

following seems to indicate that it isn't a permission issue. I am running old version DB, 4.7 from our favourite distro repo :(
Seems like there is transaction that is not being closed properly??

528af863 connection_get(16)
=> ldap_bv2dn(cn=Manager,cn=config,0)
<= ldap_bv2dn(cn=Manager,cn=config)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(cn=Manager,cn=config)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(cn=manager,cn=config)=0
528af863 send_ldap_result: err=0 matched="" text=""
528af863 connection_get(16)
528af863 conn=1003 op=1 do_modify: dn (olcDatabase={2}hdb,cn=config)
=> ldap_bv2dn(olcDatabase={2}hdb,cn=config,0)
<= ldap_bv2dn(olcDatabase={2}hdb,cn=config)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(olcDatabase={2}hdb,cn=config)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(olcDatabase={2}hdb,cn=config)=0
528af863 conn=1003 op=1 modifications:
528af863        replace: olcDbConfig
528af863                multiple values
528af863 bdb(dc=example,dc=com): Error: closing the transaction region with active transactions 528af863 bdb_db_close: database "dc=example,dc=com": close failed: Invalid argument (22)
528af863 hdb_cf_cleanup: failed to reopen database, rc=22
528af863 send_ldap_result: err=80 matched="" text="failed to reopen database, rc=22"
528af863 daemon: abnormal condition, shutdown initiated.

On 2013-11-18 8:36 PM, Howard Chu wrote:
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)
ber_scanf fmt ({iAA) ber:
ber_scanf fmt (}) ber:
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.