[SCM] Samba Shared Repository - branch master updated

Michael Adam obnox at samba.org
Mon Jun 20 18:24:04 UTC 2016


The branch, master has been updated
       via  7d9a876 ctdb-tests: Update local daemons tests to use CTDB_NOSETSCHED
       via  fc7e863 ctdb-scripts: Add new configuration variable CTDB_NOSETSCHED
       via  da91b70 ctdb-locking: Avoid real-time in lock helper if nosetsched option is set
       via  a21a4de ctdb-locking: Conditionally set real-time priority in lock helper
       via  2828b9a ctdb-daemon: Explicitly assign boolean values
       via  fd7bad4 ctdb-daemon: Do explicit check for integer values
      from  2d348bd pidl/ws: fix missing $name when generating MAPI dissector

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 7d9a8760400c8135374634767691e7a5f7a3a639
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Mon Jun 20 14:24:07 2016 +1000

    ctdb-tests: Update local daemons tests to use CTDB_NOSETSCHED
    
    ... instead of --nosetsched command-line option.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Michael Adam <obnox at samba.org>
    
    Autobuild-User(master): Michael Adam <obnox at samba.org>
    Autobuild-Date(master): Mon Jun 20 20:22:57 CEST 2016 on sn-devel-144

commit fc7e863ce7ee710159d030b05244879b17d7ceb2
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Mon Jun 20 14:21:18 2016 +1000

    ctdb-scripts: Add new configuration variable CTDB_NOSETSCHED
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit da91b707463193540294609d1ca7e043e34cd8ce
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Jun 17 18:35:18 2016 +1000

    ctdb-locking: Avoid real-time in lock helper if nosetsched option is set
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit a21a4de2cb13d4f762c7c1192d05edf785091910
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Jun 17 18:33:27 2016 +1000

    ctdb-locking: Conditionally set real-time priority in lock helper
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 2828b9a8c6c067fe5cb9c5c56f2dd20f715682a5
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Jun 17 18:10:16 2016 +1000

    ctdb-daemon: Explicitly assign boolean values
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit fd7bad4229de93dccd82b1499c216fae2cf9ae5e
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Jun 17 18:09:37 2016 +1000

    ctdb-daemon: Do explicit check for integer values
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Michael Adam <obnox at samba.org>

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

Summary of changes:
 ctdb/config/ctdbd_wrapper                    |  1 +
 ctdb/doc/ctdbd.conf.5.xml                    | 14 ++++++++
 ctdb/server/ctdb_lock.c                      |  8 +++++
 ctdb/server/ctdb_lock_helper.c               | 51 ++++++++++++++++++----------
 ctdb/server/ctdbd.c                          | 10 +++---
 ctdb/tests/simple/scripts/local_daemons.bash |  7 ++--
 6 files changed, 65 insertions(+), 26 deletions(-)


Changeset truncated at 500 lines:

diff --git a/ctdb/config/ctdbd_wrapper b/ctdb/config/ctdbd_wrapper
index b6b983c..c007409 100755
--- a/ctdb/config/ctdbd_wrapper
+++ b/ctdb/config/ctdbd_wrapper
@@ -163,6 +163,7 @@ build_ctdb_options ()
     maybe_set "--start-as-stopped "      "$CTDB_START_AS_STOPPED"     "yes"
     maybe_set "--no-recmaster"           "$CTDB_CAPABILITY_RECMASTER" "no"
     maybe_set "--no-lmaster"             "$CTDB_CAPABILITY_LMASTER"   "no"
+    maybe_set "--nosetsched"             "$CTDB_NOSETSCHED"           "yes"
     maybe_set "--script-log-level"       "$CTDB_SCRIPT_LOG_LEVEL"
     maybe_set "--max-persistent-check-errors" "$CTDB_MAX_PERSISTENT_CHECK_ERRORS"
 }
diff --git a/ctdb/doc/ctdbd.conf.5.xml b/ctdb/doc/ctdbd.conf.5.xml
index f69f705..2ec76fd 100644
--- a/ctdb/doc/ctdbd.conf.5.xml
+++ b/ctdb/doc/ctdbd.conf.5.xml
@@ -314,6 +314,20 @@
       </varlistentry>
 
       <varlistentry>
+	<term>CTDB_NOSETSCHED=yes|no</term>
+	<listitem>
+	  <para>
+	    Defaults to no.  Corresponds to <option>--nosetsched</option>.
+	  </para>
+	  <para>
+	    Usually CTDB runs with real-time priority.	If you are running
+	    CTDB on a platform that does not support real-time priority,
+	    you can set this.
+	  </para>
+	</listitem>
+      </varlistentry>
+
+      <varlistentry>
 	<term>CTDB_NOTIFY_SCRIPT=<parameter>FILENAME</parameter></term>
 	<listitem>
 	  <para>
diff --git a/ctdb/server/ctdb_lock.c b/ctdb/server/ctdb_lock.c
index 7962e94..8f3a18d 100644
--- a/ctdb/server/ctdb_lock.c
+++ b/ctdb/server/ctdb_lock.c
@@ -845,6 +845,14 @@ static void ctdb_lock_schedule(struct ctdb_context *ctdb)
 		return;
 	}
 
+	if (! ctdb->do_setsched) {
+		ret = setenv("CTDB_NOSETSCHED", "1", 1);
+		if (ret != 0) {
+			DEBUG(DEBUG_WARNING,
+			      ("Failed to set CTDB_NOSETSCHED variable\n"));
+		}
+	}
+
 	/* Create arguments for lock helper */
 	if (!lock_helper_args(tmp_ctx, lock_ctx, lock_ctx->fd[1],
 			      &argc, &args)) {
diff --git a/ctdb/server/ctdb_lock_helper.c b/ctdb/server/ctdb_lock_helper.c
index cdcbb4a..e41d230 100644
--- a/ctdb/server/ctdb_lock_helper.c
+++ b/ctdb/server/ctdb_lock_helper.c
@@ -28,6 +28,35 @@
 #include "common/system.h"
 
 static char *progname = NULL;
+static bool realtime = true;
+
+static void set_priority(void)
+{
+	const char *ptr;
+
+	ptr = getenv("CTDB_NOSETSCHED");
+	if (ptr != NULL) {
+		realtime = false;
+	}
+
+	if (! realtime) {
+		return;
+	}
+
+	realtime = set_scheduler();
+	if (! realtime) {
+		fprintf(stderr,
+			"%s: Unable to set real-time scheduler priority\n",
+			progname);
+	}
+}
+
+static void reset_priority(void)
+{
+	if (realtime) {
+		reset_scheduler();
+	}
+}
 
 static void send_result(int fd, char result)
 {
@@ -69,7 +98,6 @@ static int lock_record(const char *dbpath, const char *dbflags, const char *dbke
 	TDB_DATA key;
 	struct tdb_context *tdb;
 	int tdb_flags;
-	bool realtime;
 
 	/* No error checking since CTDB always passes sane values */
 	tdb_flags = strtol(dbflags, NULL, 0);
@@ -88,11 +116,7 @@ static int lock_record(const char *dbpath, const char *dbflags, const char *dbke
 		return 1;
 	}
 
-	realtime = set_scheduler();
-	if (! realtime) {
-		fprintf(stderr, "%s: Unable to set real-time scheduler priority\n",
-			progname);
-	}
+	set_priority();
 
 	if (tdb_chainlock(tdb, key) < 0) {
 		fprintf(stderr, "%s: Error getting record lock (%s)\n",
@@ -100,9 +124,7 @@ static int lock_record(const char *dbpath, const char *dbflags, const char *dbke
 		return 1;
 	}
 
-	if (realtime) {
-		reset_scheduler();
-	}
+	reset_priority();
 
 	return 0;
 
@@ -113,7 +135,6 @@ static int lock_db(const char *dbpath, const char *dbflags)
 {
 	struct tdb_context *tdb;
 	int tdb_flags;
-	bool realtime;
 
 	/* No error checking since CTDB always passes sane values */
 	tdb_flags = strtol(dbflags, NULL, 0);
@@ -124,11 +145,7 @@ static int lock_db(const char *dbpath, const char *dbflags)
 		return 1;
 	}
 
-	realtime = set_scheduler();
-	if (! realtime) {
-		fprintf(stderr, "%s: Unable to set real-time scheduler priority\n",
-			progname);
-	}
+	set_priority();
 
 	if (tdb_lockall(tdb) < 0) {
 		fprintf(stderr, "%s: Error getting db lock (%s)\n",
@@ -136,9 +153,7 @@ static int lock_db(const char *dbpath, const char *dbflags)
 		return 1;
 	}
 
-	if (realtime) {
-		reset_scheduler();
-	}
+	reset_priority();
 
 	return 0;
 }
diff --git a/ctdb/server/ctdbd.c b/ctdb/server/ctdbd.c
index a075c49..420add4 100644
--- a/ctdb/server/ctdbd.c
+++ b/ctdb/server/ctdbd.c
@@ -293,15 +293,15 @@ int main(int argc, const char *argv[])
 		}
 	}
 
-	ctdb->valgrinding = options.valgrinding;
-	if (options.valgrinding || options.nosetsched) {
-		ctdb->do_setsched = 0;
+	ctdb->valgrinding = (options.valgrinding == 1);
+	if ((options.valgrinding == 1) || (options.nosetsched == 1)) {
+		ctdb->do_setsched = false;
 	} else {
-		ctdb->do_setsched = 1;
+		ctdb->do_setsched = true;
 	}
 
 	ctdb->public_addresses_file = options.public_address_list;
-	ctdb->do_checkpublicip = !options.no_publicipcheck;
+	ctdb->do_checkpublicip = (options.no_publicipcheck == 0);
 
 	if (options.max_persistent_check_errors < 0) {
 		ctdb->max_persistent_check_errors = 0xFFFFFFFFFFFFFFFFLL;
diff --git a/ctdb/tests/simple/scripts/local_daemons.bash b/ctdb/tests/simple/scripts/local_daemons.bash
index fc0e47d..765655e 100644
--- a/ctdb/tests/simple/scripts/local_daemons.bash
+++ b/ctdb/tests/simple/scripts/local_daemons.bash
@@ -30,7 +30,7 @@ daemons_stop ()
     echo "Sleeping for a while..."
     sleep_for 1
 
-    local pat="ctdbd --sloppy-start --nopublicipcheck --nosetsched"
+    local pat="ctdbd --sloppy-start --nopublicipcheck"
     if pgrep -f "$pat" >/dev/null ; then
 	echo "Killing remaining daemons..."
 	pkill -f "$pat"
@@ -129,6 +129,7 @@ CTDB_DBDIR_PERSISTENT="${TEST_VAR_DIR}/test.db/persistent"
 CTDB_DBDIR_STATE="${TEST_VAR_DIR}/test.db/state"
 CTDB_PUBLIC_ADDRESSES="${public_addresses}"
 CTDB_SOCKET="${TEST_VAR_DIR}/sock.$pnn"
+CTDB_NOSETSCHED=yes
 EOF
 
     # Override from the environment.  This would be easier if env was
@@ -138,8 +139,8 @@ EOF
     sed -e 's@=\([^"]\)@="\1@' -e 's@[^"]$@&"@' -e 's@="$@&"@' >>"$conf"
 
     # We'll use "pkill -f" to kill the daemons with
-    # "ctdbd --sloppy-start --nopublicipcheck --nosetsched" as context.
-    CTDBD="${VALGRIND} ctdbd --sloppy-start --nopublicipcheck --nosetsched" \
+    # "ctdbd --sloppy-start --nopublicipcheck" as context.
+    CTDBD="${VALGRIND} ctdbd --sloppy-start --nopublicipcheck" \
 	 CTDBD_CONF="$conf" \
 	 ctdbd_wrapper "$pidfile" start
 }


-- 
Samba Shared Repository



More information about the samba-cvs mailing list