summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'ldap/servers/slapd/back-ldbm/ldbm_instance_config.c')
-rw-r--r--ldap/servers/slapd/back-ldbm/ldbm_instance_config.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c b/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
index a826e3c6..dc71f8c9 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
@@ -1084,7 +1084,18 @@ ldbm_instance_post_delete_instance_entry_callback(Slapi_PBlock *pb, Slapi_Entry*
}
PR_CloseDir(dirhandle);
}
- PR_RmDir(inst_dirp);
+ /*
+ * When a backend was removed, the db instance directory
+ * was removed as well (See also bz463774).
+ * In case DB_RECOVER_FATAL is set in the DB open after
+ * the removal (e.g., in restore), the logs in the transaction
+ * logs are replayed and compared with the contents of the DB
+ * files. At that time, if the db instance directory does not
+ * exist, libdb returns FATAL error. To prevent the problem,
+ * we have to leave the empty directory. (bz597375)
+ *
+ * PR_RmDir(inst_dirp);
+ */
} /* non-null dirhandle */
if (inst_dirp != inst_dir) {
slapi_ch_free_string(&inst_dirp);