ldap/servers/slapd/back-ldbm/ancestorid.c | 6 ++++++
1 file changed, 6 insertions(+)
New commits:
commit 4fa2ee84eb3dfdfd202585a59403195b408bbb8f
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Mon Apr 26 17:26:00 2010 -0600
Bug 572018 - Upgrading from 1.2.5 to 1.2.6.a2 deletes userRoot
https://bugzilla.redhat.com/show_bug.cgi?id=572018
Resolves: bug 572018
Bug Description: Upgrading from 1.2.5 to 1.2.6.a2 deletes userRoot
Reviewed by: self
Branch: HEAD
Fix Description: According to the error message, the entry id cannot be
found in the id2entry file. The entry id comes from the parentid index,
which has just been created by the dn2rdn upgradedb process. The entryid
is the key in the parentid index. I'm not sure how this can happen -
either the parentid contains the id of an entry that does not exist, or
the entryid was somehow corrupted. I've added some additional debugging
statements to try to narrow this down.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
diff --git a/ldap/servers/slapd/back-ldbm/ancestorid.c
b/ldap/servers/slapd/back-ldbm/ancestorid.c
index 768dc6e..1337e03 100644
--- a/ldap/servers/slapd/back-ldbm/ancestorid.c
+++ b/ldap/servers/slapd/back-ldbm/ancestorid.c
@@ -464,6 +464,9 @@ static int ldbm_ancestorid_new_idl_create_index(backend *be)
while (1) {
ret = ldbm_parentid(be, txn, id, &parentid);
if (ret != 0) {
+ slapi_log_error(SLAPI_LOG_FATAL, sourcefile,
+ "Error: ldbm_parentid on node index [" ID_FMT
"] of [" ID_FMT "]\n",
+ nids, nodes->b_nids);
idl_free(children);
goto out;
}
@@ -552,6 +555,9 @@ static int ldbm_parentid(backend *be, DB_TXN *txn, ID id, ID *ppid)
ret = db->get(db, txn, &key, &data, 0);
if (ret != 0) {
ldbm_nasty(sourcefile,13110,ret);
+ slapi_log_error(SLAPI_LOG_FATAL, sourcefile,
+ "Error: unable to find entry id [" ID_FMT "]
(original [" ID_FMT "])"
+ " in id2entry\n", stored_id, id);
goto out;
}