[SCM] CTDB repository - branch master updated - 9fc1b49dddf7f7c5b6a7562c293cb22bc7d5f3b9

Andrew Tridgell tridge at samba.org
Tue May 5 22:19:06 GMT 2009


The branch, master has been updated
       via  9fc1b49dddf7f7c5b6a7562c293cb22bc7d5f3b9 (commit)
       via  11b11e00d00d1bc587e18283861664d73f287b41 (commit)
      from  de559946b20cfd7560a205b9c4ae73688341d1b5 (commit)

http://gitweb.samba.org/?p=tridge/ctdb.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 9fc1b49dddf7f7c5b6a7562c293cb22bc7d5f3b9
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed May 6 08:18:21 2009 +1000

    use less intrusive smbstatus call in periodic connections cleanup

commit 11b11e00d00d1bc587e18283861664d73f287b41
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed May 6 08:17:45 2009 +1000

    merged from ronnie

-----------------------------------------------------------------------

Summary of changes:
 config/events.d/50.samba |    2 +-
 include/ctdb_private.h   |   12 ++++++------
 server/ctdb_traverse.c   |   11 +++--------
 3 files changed, 10 insertions(+), 15 deletions(-)


Changeset truncated at 500 lines:

diff --git a/config/events.d/50.samba b/config/events.d/50.samba
index e0e2ad7..0343ce4 100755
--- a/config/events.d/50.samba
+++ b/config/events.d/50.samba
@@ -135,7 +135,7 @@ periodic_cleanup() {
     # running smbstatus scrubs any dead entries from the connections
     # and sessionid database
     # echo "Running periodic cleanup of samba databases"
-    smbstatus -n > /dev/null 2>&1 &
+    smbstatus -np > /dev/null 2>&1 &
 }
 
 case $cmd in 
diff --git a/include/ctdb_private.h b/include/ctdb_private.h
index 9ba4cc0..f37560a 100644
--- a/include/ctdb_private.h
+++ b/include/ctdb_private.h
@@ -556,12 +556,12 @@ enum ctdb_controls {CTDB_CONTROL_PROCESS_EXISTS          = 0,
 		    CTDB_CONTROL_TAKEOVER_IP             = 89,
 		    CTDB_CONTROL_GET_PUBLIC_IPS          = 90,
 		    CTDB_CONTROL_GET_NODEMAP             = 91,
-		    CTDB_CONTROL_TRAVERSE_KILL		 = 92,
-		    CTDB_CONTROL_EVENT_SCRIPT_INIT       = 93,
-		    CTDB_CONTROL_EVENT_SCRIPT_START      = 94,
-		    CTDB_CONTROL_EVENT_SCRIPT_STOP       = 95,
-		    CTDB_CONTROL_EVENT_SCRIPT_FINISHED   = 96,
-		    CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS = 97,
+		    CTDB_CONTROL_EVENT_SCRIPT_INIT       = 92,
+		    CTDB_CONTROL_EVENT_SCRIPT_START      = 93,
+		    CTDB_CONTROL_EVENT_SCRIPT_STOP       = 94,
+		    CTDB_CONTROL_EVENT_SCRIPT_FINISHED   = 95,
+		    CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS = 96,
+		    CTDB_CONTROL_TRAVERSE_KILL		 = 97,
 };	
 
 /*
diff --git a/server/ctdb_traverse.c b/server/ctdb_traverse.c
index 60a8e90..dbb4b4f 100644
--- a/server/ctdb_traverse.c
+++ b/server/ctdb_traverse.c
@@ -92,7 +92,6 @@ static int ctdb_traverse_local_fn(struct tdb_context *tdb, TDB_DATA key, TDB_DAT
 	struct ctdb_rec_data *d;
 	struct ctdb_ltdb_header *hdr;
 
-	
 	hdr = (struct ctdb_ltdb_header *)data.dptr;
 
 	if (h->ctdb_db->persistent == 0) {
@@ -229,10 +228,10 @@ static void ctdb_traverse_all_timeout(struct event_context *ev, struct timed_eve
 {
 	struct ctdb_traverse_all_handle *state = talloc_get_type(private_data, struct ctdb_traverse_all_handle);
 
+	DEBUG(DEBUG_ERR,(__location__ " Traverse all timeout on database:%s\n", state->ctdb_db->db_name));
 	state->ctdb->statistics.timeouts.traverse++;
 
 	state->callback(state->private_data, tdb_null, tdb_null);
-	talloc_free(state);
 }
 
 
@@ -265,7 +264,7 @@ static struct ctdb_traverse_all_handle *ctdb_daemon_traverse_all(struct ctdb_db_
 	struct ctdb_traverse_all r;
 	uint32_t destination;
 
-	state = talloc(ctdb_db, struct ctdb_traverse_all_handle);
+	state = talloc(start_state, struct ctdb_traverse_all_handle);
 	if (state == NULL) {
 		return NULL;
 	}
@@ -450,11 +449,6 @@ int32_t ctdb_control_traverse_data(struct ctdb_context *ctdb, TDB_DATA data, TDB
 	private_data = state->private_data;
 
 	callback(private_data, key, data);
-	if (key.dsize == 0 && data.dsize == 0) {
-		/* we've received all of the null replies, so all
-		   nodes are finished */
-		talloc_free(state);
-	}
 	return 0;
 }	
 
@@ -495,6 +489,7 @@ static int ctdb_traverse_start_destructor(struct traverse_start_state *state)
 	struct ctdb_traverse_start r;
 	TDB_DATA data;
 
+	DEBUG(DEBUG_ERR,(__location__ " Traverse cancelled by client disconnect for database:0x%08x\n", state->db_id));
 	r.db_id = state->db_id;
 	r.reqid = state->reqid;
 	r.srvid = state->srvid;


-- 
CTDB repository


More information about the samba-cvs mailing list