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

Re: BDB recover problem after unnormally system shutdown (ITS#3355)

This appears to be either a software use issue (in
regards to Berkeley DB tools) or possibly a bug in
Berkeley DB.  I see nothing that would indicate to
me that this is due to a bug in OpenLDAP Software.

Anyways, I suggest you first make sure your
environment is proper.  For instance, verify that
the version of db_recover you are using comes from
the some release of Berkeley DB that you configured
OpenLDAP to use.  Beyond that, you might contact
the folks at Sleepycat <http://www.sleepycat.com>
for assistance, our use one of the mailing lists
they have established for Berkeley DB.


At 07:32 AM 10/1/2004, aszuts@jobmail.hu wrote:
>Full_Name: Attila Szuts
>Version: 2.2.13
>OS: Debian Sarge
>URL: ftp://ftp.openldap.org/incoming/
>Submission from: (NULL) (
>BDB 4.2.52
>LDAP: 2.2.13 (But I think it is in newer versions.)
>I don't if anyone had similar problem, but it happened to me multiple times at
>the past...
>I run OpenLDAP on a mail server as user database server. I modify ldap entries
>with some PHP
># Features to permit
>allow bind_v2
>include   /etc/ldap/schema/core.schema
>include   /etc/ldap/schema/cosine.schema
>include   /etc/ldap/schema/nis.schema
>include   /etc/ldap/schema/inetorgperson.schema
>schemacheck     on
>pidfile         /var/run/slapd.pid
>argsfile        /var/run/slapd.args
>backend   bdb
>database  bdb
>checkpoint 10 2
>cachesize 1000
>suffix          "dc=nowhere,dc=com"
>directory       <path_to_db_dir>
>index           objectClass pres,eq
>lastmod         on
>sizelimit -1
>#And some ACLs...
>BDB DB_CONFIG file: (reside in slapd.conf -> directory)
>set_lk_max_locks   2000
>set_lk_max_lockers 2000
>set_lk_max_objects 2000
>set_lg_bsize    1048576
>set_lg_max      6291456
>I thought that my config settings will be automatically committing any changes
>in BDB after
>2 minutes or after 10kb.
>Then came an unplanned system shutdown(caused by eletrical breakdown without
>notice, but
>hours later than last ldap entry has modified).
>After booting slapd was normally restarted by initd.
>All works fine, except I could not see my last few changes in ldap.
>I repaired database with db_recover -v , but it doesn't help.
>(When I used db_recover -v -c I became this error message:
>  db_recover: Finding last valid log LSN: file: 1 offset 1079544
>  db_recover: Recovery starting from [1][28]
>  db_recover: Log sequence error: page LSN 1 1052620; previous LSN 1 1095735
>  db_recover: Recovery function for LSN 1 1052620 failed on forward pass
>  db_recover: PANIC: Invalid argument
>  db_recover: PANIC: fatal region error detected; run recovery
>I moved the whole database to another place and vi-ed(viewed) the
>file and saw that my modifications(entries) are 100kbyte before EOF.(10 times
>more than 10kbyte!)
>Then I vi-ed dn2id.bdb and id2entry.bdb files but couldn't find these entries.
>Why cannot db_recover *really* recover data from the logfile? I couldn't find
>any software that can parse log file or bdb files to see records inner BDB.
>(Similar has happened with previous OpenLDAP versions, but I can't reproduce
>this error because
>this can easily kill my machines. Sorry.)
>Am I misconfigured something, or Berkeley DB is faulty or something else? What
>shall I do in the
>same situation?
>I don't know exactly how OpenLDAP with BDB or standalone BDB internally works,
>if this seems like BDB bug then sorry this bugreport and please give me some
>instruction how/what to test or post to BDB buglist.
>P.S: Another BDB problem was when disk space runs out: slapd and BDB crashes,
>and can't recover.