Branch 'Directory_Server_8_2_Branch' - ldap/servers
by Noriko Hosoi
ldap/servers/slapd/back-ldbm/dblayer.c | 5 +++--
ldap/servers/slapd/back-ldbm/ldbm_instance_config.c | 13 ++++++++++++-
2 files changed, 15 insertions(+), 3 deletions(-)
New commits:
commit 1d5859fdf332594b37c6ab072e2657435e1958d1
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Thu Jun 3 11:48:23 2010 -0700
597375 - Deleting LDBM database causes backup/restore problem
https://bugzilla.redhat.com/show_bug.cgi?id=597375
Fix Description:
1) When a backend was removed, the db instance directory was removed
as well (See also 463774 - index files for database should be deleted
when db is deleted). 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.
2) When removing index files, we don't have to open index files
with CREAT flag.
Note: In the bug 463774, the server was fixed so that once a db
backend is removed, the db instance directory is removed. With
this fix (597375), the backend removal leaves the empty db instance
directory. Plus, if backup is restored, even if the backup was
made after the backend is deleted, the restore could create empty
DB files in the deleted db instance directory if the transaction
log files still contain the history of the deleted backend.
diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c b/ldap/servers/slapd/back-ldbm/dblayer.c
index 1254b37..27a4f6f 100644
--- a/ldap/servers/slapd/back-ldbm/dblayer.c
+++ b/ldap/servers/slapd/back-ldbm/dblayer.c
@@ -3128,7 +3128,7 @@ int dblayer_erase_index_file_ex(backend *be, struct attrinfo *a,
int rc = 0;
DB *db = 0;
- if (NULL == pEnv) /* index file does not exist */
+ if (NULL == pEnv) /* db does not exist */
return rc;
/* Added for bug 600401. Somehow the checkpoint thread deadlocked on
@@ -3139,7 +3139,8 @@ int dblayer_erase_index_file_ex(backend *be, struct attrinfo *a,
dblayer_force_checkpoint(li);
}
- if (dblayer_get_index_file(be, a, &db, DBOPEN_CREATE) == 0) {
+ if (0 == dblayer_get_index_file(be, a, &db, 0 /* Don't create an index file
+ if it does not exist. */)) {
/* first, remove the file handle for this index, if we have it open */
PR_Lock(inst->inst_handle_list_mutex);
if (a->ai_dblayer) {
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c b/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
index a826e3c..dc71f8c 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);
13 years, 11 months
ldap/servers
by Noriko Hosoi
ldap/servers/slapd/back-ldbm/dblayer.c | 5 +++--
ldap/servers/slapd/back-ldbm/ldbm_instance_config.c | 13 ++++++++++++-
2 files changed, 15 insertions(+), 3 deletions(-)
New commits:
commit bd35c4438a608266a8be7753a243506726de6606
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Thu Jun 3 11:48:23 2010 -0700
597375 - Deleting LDBM database causes backup/restore problem
https://bugzilla.redhat.com/show_bug.cgi?id=597375
Fix Description:
1) When a backend was removed, the db instance directory was removed
as well (See also 463774 - index files for database should be deleted
when db is deleted). 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.
2) When removing index files, we don't have to open index files
with CREAT flag.
Note: In the bug 463774, the server was fixed so that once a db
backend is removed, the db instance directory is removed. With
this fix (597375), the backend removal leaves the empty db instance
directory. Plus, if backup is restored, even if the backup was
made after the backend is deleted, the restore could create empty
DB files in the deleted db instance directory if the transaction
log files still contain the history of the deleted backend.
diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c b/ldap/servers/slapd/back-ldbm/dblayer.c
index ae66be6..598b997 100644
--- a/ldap/servers/slapd/back-ldbm/dblayer.c
+++ b/ldap/servers/slapd/back-ldbm/dblayer.c
@@ -3154,7 +3154,7 @@ int dblayer_erase_index_file_ex(backend *be, struct attrinfo *a,
int rc = 0;
DB *db = 0;
- if (NULL == pEnv) /* index file does not exist */
+ if (NULL == pEnv) /* db does not exist */
return rc;
/* Added for bug 600401. Somehow the checkpoint thread deadlocked on
@@ -3165,7 +3165,8 @@ int dblayer_erase_index_file_ex(backend *be, struct attrinfo *a,
dblayer_force_checkpoint(li);
}
- if (dblayer_get_index_file(be, a, &db, DBOPEN_CREATE) == 0) {
+ if (0 == dblayer_get_index_file(be, a, &db, 0 /* Don't create an index file
+ if it does not exist. */)) {
/* first, remove the file handle for this index, if we have it open */
PR_Lock(inst->inst_handle_list_mutex);
if (a->ai_dblayer) {
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c b/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
index a6b1166..a33bb78 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
@@ -1109,7 +1109,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);
13 years, 11 months
Changes to 'refs/tags/389-admin-console-1.1.5'
by Richard Allen Megginson
Changes since the dawn of time:
Endi S. Dewata (1):
Bug 368481 - Unable to change Admin Server log paths in Console
Nathan Kinder (7):
Resolves: 247525
Resolves: 250699
Resolves: 251427
Related: 251427
Added ldapjdk default path as well as settable path.
Use less restrictive version of Open Publication License for online help docs.
Resolves: 379211
Noriko Hosoi (5):
[191832] Admin Server password always remembers initial password on (part 2)
Resolves: #379191
Resolves: #159011
Resolves: #416311
Resolves: #400341
Rich Megginson (21):
Initial import of admin server console into its own module
use admserv instead of as for jar file names
remove improperly added binary files
correctly add binary files
bump version to 1.0.3
fix symlinks
Resolves: bug 400361
updated spec for Fedora DS 1.1 release
Resolves: bug 428364
Bug 428364
bump version to 1.1.2 - disable sslv2 in the ui
this is the 1.1.2 release
Resolves: bug 452596
Resolves: bug 429514
Resolves: bug 166230
change version to 1.1.3
for the 1.1.3 release
Rename to 389
these files should be mode 644
change version to 1.1.4 - add doc subpackage - relicense under plain gplv2
bump version to 1.1.5
13 years, 11 months
build.properties
by Richard Allen Megginson
build.properties | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit d3e6a17d31ad55402f68e0c2e2d0719b51b74deb
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Jun 2 08:57:20 2010 -0600
bump version to 1.1.5
diff --git a/build.properties b/build.properties
index c77773a..97ff931 100644
--- a/build.properties
+++ b/build.properties
@@ -21,7 +21,7 @@
lang=en
admservconsole.root=..
-admservconsole.version=1.1.4
+admservconsole.version=1.1.5
admservconsole.gen.version=1.1
brand=389
admservconsole.name=${brand}-admin-${admservconsole.version}
13 years, 11 months
Changes to 'refs/tags/Directory_Server_8_2_RC2'
by Richard Allen Megginson
Changes since the dawn of time:
Endi S. Dewata (1):
Bug 368481 - Unable to change Admin Server log paths in Console
Nathan Kinder (7):
Resolves: 247525
Resolves: 250699
Resolves: 251427
Related: 251427
Added ldapjdk default path as well as settable path.
Use less restrictive version of Open Publication License for online help docs.
Resolves: 379211
Noriko Hosoi (5):
[191832] Admin Server password always remembers initial password on (part 2)
Resolves: #379191
Resolves: #159011
Resolves: #416311
Resolves: #400341
Rich Megginson (20):
Initial import of admin server console into its own module
use admserv instead of as for jar file names
remove improperly added binary files
correctly add binary files
bump version to 1.0.3
fix symlinks
Resolves: bug 400361
updated spec for Fedora DS 1.1 release
Resolves: bug 428364
Bug 428364
bump version to 1.1.2 - disable sslv2 in the ui
this is the 1.1.2 release
Resolves: bug 452596
Resolves: bug 429514
Resolves: bug 166230
change version to 1.1.3
for the 1.1.3 release
Rename to 389
these files should be mode 644
change version to 1.1.4 - add doc subpackage - relicense under plain gplv2
13 years, 11 months