[SCM] CTDB repository - branch master updated -
f3a729998ce67f5d2e3b2ad41d96e8f04c0d18d8
Andrew Tridgell
tridge at samba.org
Fri Jul 4 07:32:32 GMT 2008
The branch, master has been updated
via f3a729998ce67f5d2e3b2ad41d96e8f04c0d18d8 (commit)
via ababd8aba2f9c13aaa1b623b8a76c2f98bb94dd4 (commit)
from 015cd221c3c62eaa3cd0351fb8e93292c7c293aa (commit)
http://gitweb.samba.org/?p=tridge/ctdb.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit f3a729998ce67f5d2e3b2ad41d96e8f04c0d18d8
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Jul 4 17:32:21 2008 +1000
don't use mmap in tdb if --nosetsched is set. That makes valgrind
happier (it doesn't like the mmap/msync calls in tdb)
commit ababd8aba2f9c13aaa1b623b8a76c2f98bb94dd4
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Jul 4 17:15:06 2008 +1000
prevent valgrind errors where we print unitialised values on control errors
-----------------------------------------------------------------------
Summary of changes:
client/ctdb_client.c | 14 +++++++++++++-
server/ctdb_ltdb_server.c | 8 +++++++-
server/ctdb_recoverd.c | 9 ++++++++-
3 files changed, 28 insertions(+), 3 deletions(-)
Changeset truncated at 500 lines:
diff --git a/client/ctdb_client.c b/client/ctdb_client.c
index f342553..ed999f2 100644
--- a/client/ctdb_client.c
+++ b/client/ctdb_client.c
@@ -884,6 +884,13 @@ int ctdb_control_recv(struct ctdb_context *ctdb,
{
TALLOC_CTX *tmp_ctx;
+ if (status != NULL) {
+ *status = -1;
+ }
+ if (errormsg != NULL) {
+ *errormsg = NULL;
+ }
+
if (state == NULL) {
return -1;
}
@@ -1683,7 +1690,12 @@ struct ctdb_db_context *ctdb_attach(struct ctdb_context *ctdb, const char *name,
return NULL;
}
- ctdb_db->ltdb = tdb_wrap_open(ctdb, ctdb_db->db_path, 0, persistent?TDB_DEFAULT:TDB_NOSYNC, O_RDWR, 0);
+ tdb_flags = persistent?TDB_DEFAULT:TDB_NOSYNC;
+ if (!ctdb->do_setsched) {
+ tdb_flags |= TDB_NOMMAP;
+ }
+
+ ctdb_db->ltdb = tdb_wrap_open(ctdb, ctdb_db->db_path, 0, tdb_flags, O_RDWR, 0);
if (ctdb_db->ltdb == NULL) {
ctdb_set_error(ctdb, "Failed to open tdb '%s'\n", ctdb_db->db_path);
talloc_free(ctdb_db);
diff --git a/server/ctdb_ltdb_server.c b/server/ctdb_ltdb_server.c
index 5146ed8..a6ad4ee 100644
--- a/server/ctdb_ltdb_server.c
+++ b/server/ctdb_ltdb_server.c
@@ -197,6 +197,7 @@ static int ctdb_local_attach(struct ctdb_context *ctdb, const char *db_name, boo
struct ctdb_db_context *ctdb_db, *tmp_db;
int ret;
struct TDB_DATA key;
+ unsigned tdb_flags;
ctdb_db = talloc_zero(ctdb, struct ctdb_db_context);
CTDB_NO_MEMORY(ctdb, ctdb_db);
@@ -244,9 +245,14 @@ static int ctdb_local_attach(struct ctdb_context *ctdb, const char *db_name, boo
persistent?ctdb->db_directory_persistent:ctdb->db_directory,
db_name, ctdb->pnn);
+ tdb_flags = persistent? TDB_DEFAULT : TDB_CLEAR_IF_FIRST | TDB_NOSYNC;
+ if (!ctdb->do_setsched) {
+ tdb_flags |= TDB_NOMMAP;
+ }
+
ctdb_db->ltdb = tdb_wrap_open(ctdb, ctdb_db->db_path,
ctdb->tunable.database_hash_size,
- persistent? TDB_DEFAULT : TDB_CLEAR_IF_FIRST | TDB_NOSYNC,
+ tdb_flags,
O_CREAT|O_RDWR, 0666);
if (ctdb_db->ltdb == NULL) {
DEBUG(DEBUG_CRIT,("Failed to open tdb '%s'\n", ctdb_db->db_path));
diff --git a/server/ctdb_recoverd.c b/server/ctdb_recoverd.c
index f161e7c..a20776a 100644
--- a/server/ctdb_recoverd.c
+++ b/server/ctdb_recoverd.c
@@ -1105,6 +1105,7 @@ static struct tdb_wrap *create_recdb(struct ctdb_context *ctdb, TALLOC_CTX *mem_
{
char *name;
struct tdb_wrap *recdb;
+ unsigned tdb_flags;
/* open up the temporary recovery database */
name = talloc_asprintf(mem_ctx, "%s/recdb.tdb", ctdb->db_directory);
@@ -1112,8 +1113,14 @@ static struct tdb_wrap *create_recdb(struct ctdb_context *ctdb, TALLOC_CTX *mem_
return NULL;
}
unlink(name);
+
+ tdb_flags = TDB_NOLOCK;
+ if (!ctdb->do_setsched) {
+ tdb_flags |= TDB_NOMMAP;
+ }
+
recdb = tdb_wrap_open(mem_ctx, name, ctdb->tunable.database_hash_size,
- TDB_NOLOCK, O_RDWR|O_CREAT|O_EXCL, 0600);
+ tdb_flags, O_RDWR|O_CREAT|O_EXCL, 0600);
if (recdb == NULL) {
DEBUG(DEBUG_CRIT,(__location__ " Failed to create temp recovery database '%s'\n", name));
}
--
CTDB repository
More information about the samba-cvs
mailing list