[SCM] CTDB repository - branch master updated - ctdb-1.0.104-11-g5fdf842

Ronnie Sahlberg sahlberg at samba.org
Wed Nov 18 19:05:46 MST 2009


The branch, master has been updated
       via  5fdf842db09cd806248cdbdce2270f39ed213872 (commit)
       via  80a8d728e9680040e00d24361dfc9367dd372a56 (commit)
      from  6427f0b68d60b556a023f64e15e156000ba6f943 (commit)

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


- Log -----------------------------------------------------------------
commit 5fdf842db09cd806248cdbdce2270f39ed213872
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Nov 19 11:08:14 2009 +1100

    new version 1.0.105

commit 80a8d728e9680040e00d24361dfc9367dd372a56
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Nov 19 11:03:51 2009 +1100

    dont reset the event script context everytime we start a new "ctdb eventscript ..."
    command.
    Use the existing context used for non-monitor events
    
    Multiple concurrent uses of "ctdb eventscript ..." could otherwise lead to a SEGV

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

Summary of changes:
 include/ctdb_private.h     |    1 -
 packaging/RPM/ctdb.spec.in |   12 +++++++++++-
 server/eventscript.c       |   11 ++++-------
 3 files changed, 15 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/include/ctdb_private.h b/include/ctdb_private.h
index 674b0ac..f937ef4 100644
--- a/include/ctdb_private.h
+++ b/include/ctdb_private.h
@@ -448,7 +448,6 @@ struct ctdb_context {
 	int start_as_disabled;
 	int start_as_stopped;
 	uint32_t event_script_timeouts; /* counting how many consecutive times an eventscript has timedout */
-	TALLOC_CTX *eventscripts_ctx; /* a context to hold data for the RUN_EVENTSCRIPTS control */
 	uint32_t *recd_ping_count;
 	TALLOC_CTX *release_ips_ctx; /* a context used to automatically drop all IPs if we fail to recover the node */
 	TALLOC_CTX *script_monitor_ctx; /* a context where we store results while running the monitor event */
diff --git a/packaging/RPM/ctdb.spec.in b/packaging/RPM/ctdb.spec.in
index 24ded62..4ca58e9 100644
--- a/packaging/RPM/ctdb.spec.in
+++ b/packaging/RPM/ctdb.spec.in
@@ -4,7 +4,7 @@ Summary: Clustered TDB
 Vendor: Samba Team
 Packager: Samba Team <samba at samba.org>
 Name: ctdb
-Version: 1.0.104
+Version: 1.0.105
 Release: 1GITHASH
 Epoch: 0
 License: GNU GPL version 3
@@ -118,6 +118,16 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/pkgconfig/ctdb.pc
 
 %changelog
+* Thu Nov 19 2009 : Version 1.0.105
+ - Fix a bug where we could SEGV if multiple concurrent "ctdb eventscript ..."
+   are used and some of them block.
+ - Monitor the daemon from the syslog child process so we shutdown cleanly when
+   the main daemon terminates.
+ - Add a 500k line ringbuffer in memory where all log messages are stored.
+ - Add a "ctdb getlog <level>" command to pull log messages from the in memory
+   ringbuffer.
+ - From martin : fixes to cifs and nfs autotests
+ - from michael a : fix a bashism in 11.natgw
 * Fri Nov 6 2009 : Version 1.0.104
  - Suggestion from Metze, we can now use killtcp to kill local connections
    for nfs so change the killtcp script to kill both directions of an NFS
diff --git a/server/eventscript.c b/server/eventscript.c
index 7ad66c6..3514c32 100644
--- a/server/eventscript.c
+++ b/server/eventscript.c
@@ -952,7 +952,7 @@ struct eventscript_callback_state {
 };
 
 /*
-  called when takeip event finishes
+  called when a forced eventscript run has finished
  */
 static void run_eventscripts_callback(struct ctdb_context *ctdb, int status, 
 				 void *private_data)
@@ -985,14 +985,11 @@ int32_t ctdb_run_eventscripts(struct ctdb_context *ctdb,
 	int ret;
 	struct eventscript_callback_state *state;
 
-	/* kill off any previous invokations of forced eventscripts */
-	if (ctdb->eventscripts_ctx) {
-		talloc_free(ctdb->eventscripts_ctx);
+	if (ctdb->event_script_ctx == NULL) {
+		ctdb->event_script_ctx = talloc_zero(ctdb, struct ctdb_monitor_status);
 	}
-	ctdb->eventscripts_ctx = talloc_new(ctdb);
-	CTDB_NO_MEMORY(ctdb, ctdb->eventscripts_ctx);
 
-	state = talloc(ctdb->eventscripts_ctx, struct eventscript_callback_state);
+	state = talloc(ctdb->event_script_ctx, struct eventscript_callback_state);
 	CTDB_NO_MEMORY(ctdb, state);
 
 	state->c = talloc_steal(state, c);


-- 
CTDB repository


More information about the samba-cvs mailing list