<quote who="Brian Biggs">
Hi,
Trying to reload a slapcat dumped database after upgrading from 2.3.38 to 2.3.39 and slapadd just hangs after adding the records and won't exit. Has anyone else experienced this?
We are running OpenLDAP on RHEL4 systems w/BDB 4.4.20
Any help/info appreciated.
So you emptied the db first, before trying a restore?
What errors are you getting?
-- Brian Biggs brian.biggs@sonoma.edu
--On November 28, 2007 4:42:31 PM +0000 Gavin Henry ghenry@suretecsystems.com wrote:
<quote who="Brian Biggs"> > Hi, > > Trying to reload a slapcat dumped database after upgrading > from 2.3.38 to 2.3.39 and slapadd just hangs after adding > the records and won't exit. Has anyone else experienced this? > > We are running OpenLDAP on RHEL4 systems w/BDB 4.4.20 > > Any help/info appreciated.
So you emptied the db first, before trying a restore?
What errors are you getting?
What was the exact slapadd command? Did you use the -q flag? Did you build with debugging symbols? Is it simply at the end of the add sequence and checking the database? There's a lot of missing information here.
--Quanah
--
Quanah Gibson-Mount Principal Software Engineer Zimbra, Inc -------------------- Zimbra :: the leader in open source messaging and collaboration
Thank you for your responses. Here is more info:
Did I delete the DB first? Yes.
I realize that the DB doesn't need to be reloaded for an upgrade from 2.3.38 to 2.3.39, but I'm working in a devel environment (so I don't screw up production) and I needed to load the latest DB dump from production into devel.
The slapadd command I'm using: slapadd -w -b dc=sonoma,dc=edu -f /etc/openldap/ssu-slapd.conf -v -c -d -1 -l dump.ldif
The tail end of the out from slapadd where it hangs is: slapadd startup: initiated. backend_startup_one: starting "dc=sonoma,dc=edu" bdb_db_open: dc=sonoma,dc=edu bdb_db_open: dbenv_open(/var/lib/ldap/dc-data) => str2entry: "dn: dc=sonoma,dc=edu objectClass: referral objectClass: extensibleObject dc: sonoma ref: ldap://yogi.reg.sonoma.edu/o=sonoma,o=edu ref: ldap://ldap-master.reg.sonoma.edu/o=sonoma,o=edu "
dnPrettyNormal: <dc=sonoma,dc=edu>
<<< dnPrettyNormal: <dc=sonoma,dc=edu>, <dc=sonoma,dc=edu> <= str2entry(dc=sonoma,dc=edu) -> 0x8da8018 oc_check_required entry (dc=sonoma,dc=edu), objectClass "referral" oc_check_required entry (dc=sonoma,dc=edu), objectClass "extensibleObject" => bdb_tool_entry_put( -1, "dc=sonoma,dc=edu" ) => bdb_dn2id("dc=sonoma,dc=edu") <= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30989) => bdb_dn2id_add( "dc=sonoma,dc=edu", 0x00000001 ) <= bdb_dn2id_add: 0 => entry_encode(0x00000001): dc=sonoma,dc=edu added: "dc=sonoma,dc=edu" (00000001) => bdb_dn2id("dc=sonoma,dc=edu") <= bdb_dn2id: got id=0x00000001 entry_decode: "dc=sonoma,dc=edu" <= entry_decode(dc=sonoma,dc=edu) => bdb_tool_entry_modify( 1, "dc=sonoma,dc=edu" ) => entry_encode(0x00000001): dc=sonoma,dc=edu (it hangs here indefinitely)
The file I'm loading is: dn: dc=sonoma,dc=edu objectClass: referral objectClass: extensibleObject dc: sonoma ref: ldap://yogi.reg.sonoma.edu/o=sonoma,o=edu ref: ldap://ldap-master.reg.sonoma.edu/o=sonoma,o=edu
My slapd.conf files: ---------------BEGIN CONF FILE----------------- include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/corba.schema
include /etc/openldap/localschema/eduPerson.schema include /etc/openldap/localschema/calstateEduPerson.schema include /etc/openldap/localschema/sonomaEduPerson.schema include /etc/openldap/localschema/ssuMailUser.schema include /etc/openldap/localschema/ssuResHallPerson.schema include /etc/openldap/localschema/ssuWhitePagesEntry.schema include /etc/openldap/localschema/meetingmaker.schema
loglevel 16384 256 pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args defaultsearchbase ou=wp,o=sonoma,o=edu sizelimit size.soft=200 size.hard=soft
include /etc/openldap/tls.conf -------------- tls.conf: ------------------ TLSCACertificateFile /etc/openldap/ssl/ca2037.crt TLSCACertificateFile /etc/openldap/ssl/chain.crt TLSCertificateFile /etc/openldap/ssl/ldaps.crt TLSCertificateKeyFile /etc/openldap/ssl/ldaps.key TLSVerifyClient never --------------------------------------------
require none allow bind_v2
# BEGIN ACLs ------------------------ various ACLs here (intentionally omitted) ------------------------
database bdb suffix "o=sonoma,o=edu" limits dn=uid=syncrepl,ou=people,o=sonoma,o=edu size.soft=none size.hard=soft limits dn=uid=nagios,ou=people,o=sonoma,o=edu size.soft=none size.hard=soft dirtyread dbnosync checkpoint 262144 10 cachesize 10000 directory /var/lib/ldap/openldap-data rootdn "cn=Manager,o=sonoma,o=edu" rootpw {SSHA}XXXXXXXXXXXXXXXXXX
include /etc/openldap/replication.conf -------------replication.conf:-------------------- syncrepl rid=177 provider=ldap://ldap-master.reg.sonoma.edu:389 type=refreshAndPersist interval=00:00:05:00 retry="30 +" searchbase="o=sonoma,o=edu" filter="(objectClass=*)" scope=sub attrs="*,+" schemachecking=off starttls=critical bindmethod=simple binddn="uid=syncrepl,ou=people,o=sonoma,o=edu" credentials=XXXXXXXX ------------------------------------------------------
# Indexes here (intentionally omitted)
database bdb suffix "dc=sonoma,dc=edu" directory /var/lib/ldap/dc-data rootdn "cn=Manager,o=sonoma,o=edu"
database monitor access to dn.subtree=cn=monitor by peername.regex="130.157.5.*" read
------------------END CONF FILE----------------
My DB_CONFIG file: ----------------BEGIN DB_CONFIG------------------- # set_cachesize <gbytes> <bytes> <ncache> # database "in memory" cache size; 0G + 512MB, 1 cache set_cachesize 0 536870912 1
# set_flags <flag> # DB_TXN_NOSYNC == do not immediately flush transaction buffers to disk set_flags DB_TXN_NOSYNC
# DB_TXN_WRITE_NOSYNC == write, but do not synchronously flush, the log on # transaction commit set_flags DB_TXN_WRITE_NOSYNC
# set_lg_regionmax <bytes> # maximum in memory cache for DB file name caching; 256MB set_lg_regionmax 268435456
# set_lg_max <bytes> # maximum size of log files; 512MB set_lg_max 536870912
# set_lg_bsize <bytes> # memory cache for log information; 128MB set_lg_bsize 134217728 -------------------END DB_CONFIG-------------
Thanks for looking. -Brian
Quanah Gibson-Mount wrote:
--On November 28, 2007 4:42:31 PM +0000 Gavin Henry ghenry@suretecsystems.com wrote:
<quote who="Brian Biggs"> > Hi, > > Trying to reload a slapcat dumped database after upgrading > from 2.3.38 to 2.3.39 and slapadd just hangs after adding > the records and won't exit. Has anyone else experienced this? > > We are running OpenLDAP on RHEL4 systems w/BDB 4.4.20 > > Any help/info appreciated.
So you emptied the db first, before trying a restore?
What errors are you getting?
What was the exact slapadd command? Did you use the -q flag? Did you build with debugging symbols? Is it simply at the end of the add sequence and checking the database? There's a lot of missing information here.
--Quanah
--
Quanah Gibson-Mount Principal Software Engineer Zimbra, Inc
Zimbra :: the leader in open source messaging and collaboration
Brian Biggs wrote:
Thank you for your responses. Here is more info:
Did I delete the DB first? Yes.
I realize that the DB doesn't need to be reloaded for an upgrade from 2.3.38 to 2.3.39, but I'm working in a devel environment (so I don't screw up production) and I needed to load the latest DB dump from production into devel.
The slapadd command I'm using: slapadd -w -b dc=sonoma,dc=edu -f /etc/openldap/ssu-slapd.conf -v -c -d -1 -l dump.ldif
Sounds like you ran into ITS#5225. Strange, it looks like the bug was introduced in 2.3.38 in the patch for ITS#5087. Funny that you didn't run into it on 2.3.38, or that no one else reported it. There's a fix for this in CVS that will be released in 2.4.7. This is the fix for 2.3.39:
Index: tools.c =================================================================== RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-bdb/tools.c,v retrieving revision 1.72.2.17 diff -u -w -r1.72.2.17 tools.c --- tools.c 11 Aug 2007 00:32:20 -0000 1.72.2.17 +++ tools.c 28 Nov 2007 20:04:46 -0000 @@ -664,6 +664,10 @@ (long) e->e_id, e->e_dn, 0 );
if (! (slapMode & SLAP_TOOL_QUICK)) { + if( cursor ) { + cursor->c_close( cursor ); + cursor = NULL; + } rc = TXN_BEGIN( bdb->bi_dbenv, NULL, &tid, bdb->bi_db_opflags ); if( rc != 0 ) {
The tail end of the out from slapadd where it hangs is: slapadd startup: initiated. backend_startup_one: starting "dc=sonoma,dc=edu" bdb_db_open: dc=sonoma,dc=edu bdb_db_open: dbenv_open(/var/lib/ldap/dc-data) => str2entry: "dn: dc=sonoma,dc=edu objectClass: referral objectClass: extensibleObject dc: sonoma ref: ldap://yogi.reg.sonoma.edu/o=sonoma,o=edu ref: ldap://ldap-master.reg.sonoma.edu/o=sonoma,o=edu "
dnPrettyNormal: <dc=sonoma,dc=edu>
<<< dnPrettyNormal: <dc=sonoma,dc=edu>, <dc=sonoma,dc=edu> <= str2entry(dc=sonoma,dc=edu) -> 0x8da8018 oc_check_required entry (dc=sonoma,dc=edu), objectClass "referral" oc_check_required entry (dc=sonoma,dc=edu), objectClass "extensibleObject" => bdb_tool_entry_put( -1, "dc=sonoma,dc=edu" ) => bdb_dn2id("dc=sonoma,dc=edu") <= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30989) => bdb_dn2id_add( "dc=sonoma,dc=edu", 0x00000001 ) <= bdb_dn2id_add: 0 => entry_encode(0x00000001): dc=sonoma,dc=edu added: "dc=sonoma,dc=edu" (00000001) => bdb_dn2id("dc=sonoma,dc=edu") <= bdb_dn2id: got id=0x00000001 entry_decode: "dc=sonoma,dc=edu" <= entry_decode(dc=sonoma,dc=edu) => bdb_tool_entry_modify( 1, "dc=sonoma,dc=edu" ) => entry_encode(0x00000001): dc=sonoma,dc=edu (it hangs here indefinitely)
openldap-software@openldap.org