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

Unexpected Shutdown



Hi!

Recently I discoverd a strange problem using OpenLDAP 2.2.6 and BDB 4.2.52 backend.
Everything works fine for about 5 days until the following apperard in the log:
....
conn=1528846 op=1 DEL dn="uid=123456789,ou=user,l=root"
bdb(ou=user,l=root): /www_local/openldap/2.2.6/community-temp/var/openldap-data/log.0000000257: log file open failed: Permission denied
bdb(ou=user,l=root): PANIC: Permission denied bdb(ou=user,l=root): DB_ENV->log_put: 257: DB_RUNRECOVERY: Fatal error, run database recovery => bdb_idl_delete_key: c_close failed: DB_RUNRECOVERY: Fatal error, run database recovery (-30978) bdb(ou=user,l=root): PANIC: fatal region error detected; run recovery => bdb_idl_delete_key: cursor failed: DB_RUNRECOVERY: Fatal error, run database recovery (-30978) bdb(ou=user,l=root): PANIC: fatal region error detected; run recovery => bdb_idl_delete_key: cursor failed: DB_RUNRECOVERY: Fatal error, run database recovery (-30978) conn=1528846 op=1 RESULT tag=107 err=80 text=entry index delete failed bdb(ou=user,l=root): PANIC: fatal region error detected; run recovery
conn=1528846 op=2 UNBIND
conn=1528846 fd=32 closed
conn=1528847 fd=11 ACCEPT from IP=127.0.0.1:37281 (IP=127.0.0.1:389)
conn=1528847 op=0 BIND dn="cn=admin,ou=user,l=root" method=128
conn=1528847 op=0 BIND dn="cn=admin,ou=user,l=root" mech=SIMPLE ssf=0
conn=1528847 op=0 RESULT tag=97 err=0 text=
conn=1528847 op=1 SRCH base="ou=user,l=root" scope=2 deref=0 filter="(uid=987654321)"
conn=1528847 op=1 SRCH attr=mail site regstatus username uid
bdb(ou=user,l=root): PANIC: fatal region error detected; run recovery
bdb(ou=user,l=root): PANIC: fatal region error detected; run recovery
bdb(ou=user,l=root): PANIC: fatal region error detected; run recovery
=> bdb_idl_fetch_key: cursor failed: DB_RUNRECOVERY: Fatal error, run database recovery (-30978)
bdb(ou=user,l=root): PANIC: fatal region error detected; run recovery
(Only this message appears from now on...)
....


After this message was repeated about 1000 times slapd exited.
As I tried to recover the database with "db_recover -v" I discoverd that the owner/group of the
transaction log "log.0000000257" suddenly was root:root - I run OpenLDAP as user/group openldap/openldap.
After I changed the owner/group of the transaction log back to openldap/openldap "db_recover -v" worked
fine and I was able to start OpenLDAP again.


The big question is: How could this happen? The time this error ocurred the database was very busy.
My guess is that I ran out of file descriptors. But normally I would expect to get something like
"Too many open files" or something like that.


Has anyone an explanation for this?

Cheers
Robert