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 <tri...@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 <tri...@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