[SCM] Samba Shared Repository - branch master updated

Martin Schwenke martins at samba.org
Fri Nov 25 07:15:04 UTC 2016


The branch, master has been updated
       via  f241484 ctdb-daemon: Mark RecoverPDBBySeqNum tunable deprecated
       via  2a9584d ctdb-daemon: Remove unused code cmdline.[ch]
       via  569d787a ctdb-daemon: Consolidate command line options to ctdbd
       via  7dec7e0 ctdb-tests: Remove unused test code
      from  5adb169 s4-torture: Add LZX compressed cabinet test

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


- Log -----------------------------------------------------------------
commit f2414841f2f6e8cabc90784f4f30c1b8b6038d6d
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Nov 18 15:09:26 2016 +1100

    ctdb-daemon: Mark RecoverPDBBySeqNum tunable deprecated
    
    Persistent databases are now always recovered by sequence number, so
    there is no need for this tunable.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>
    
    Autobuild-User(master): Martin Schwenke <martins at samba.org>
    Autobuild-Date(master): Fri Nov 25 08:13:59 CET 2016 on sn-devel-144

commit 2a9584dc0a768b84b2a5e78de164c67b7cf972e7
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Nov 18 14:57:47 2016 +1100

    ctdb-daemon: Remove unused code cmdline.[ch]
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>

commit 569d787a1d688ddbabbea8cc16359b0415da97fa
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Nov 18 14:52:38 2016 +1100

    ctdb-daemon: Consolidate command line options to ctdbd
    
    This inserts the code from ctdb_cmdline_init() function directly in
    main(), so common/cmdline.[ch] can be removed.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>

commit 7dec7e0b9940811d0b3eb4e2e624987b95179fe3
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Nov 18 14:27:35 2016 +1100

    ctdb-tests: Remove unused test code
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>

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

Summary of changes:
 ctdb/common/cmdline.c                      | 181 -----------------------------
 ctdb/common/cmdline.h                      |  13 ---
 ctdb/common/tunable.c                      |   2 +-
 ctdb/doc/ctdb-tunables.7.xml               |  21 ----
 ctdb/server/ctdb_recoverd.c                |   1 -
 ctdb/server/ctdb_recovery_helper.c         |   4 +-
 ctdb/server/ctdbd.c                        |  34 +++++-
 ctdb/tests/simple/70_recoverpdbbyseqnum.sh | 121 +++----------------
 ctdb/tests/simple/76_ctdb_pdb_recovery.sh  |  24 +---
 ctdb/tests/src/porting_tests.c             |   1 -
 ctdb/tests/src/rb_perftest.c               | 123 --------------------
 ctdb/tests/tool/ctdb.listvars.001.sh       |   1 -
 ctdb/wscript                               |   2 +-
 13 files changed, 53 insertions(+), 475 deletions(-)
 delete mode 100644 ctdb/common/cmdline.c
 delete mode 100644 ctdb/common/cmdline.h
 delete mode 100644 ctdb/tests/src/rb_perftest.c


Changeset truncated at 500 lines:

diff --git a/ctdb/common/cmdline.c b/ctdb/common/cmdline.c
deleted file mode 100644
index 3a4557e..0000000
--- a/ctdb/common/cmdline.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/* 
-   common commandline code to ctdb test tools
-
-   Copyright (C) Andrew Tridgell  2007
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "replace.h"
-#include "system/filesys.h"
-#include "system/network.h"
-
-#include <popt.h>
-#include <talloc.h>
-#include <tevent.h>
-#include <ctype.h>
-
-#include "lib/util/debug.h"
-#include "ctdb_private.h"
-#include "ctdb_client.h"
-
-#include "common/rb_tree.h"
-#include "common/common.h"
-#include "common/logging.h"
-#include "common/cmdline.h"
-
-
-
-/* Handle common command line options for ctdb test progs
- */
-
-static struct {
-	const char *socketname;
-	const char *debuglevel;
-	int torture;
-	const char *events;
-} ctdb_cmdline = {
-	.torture = 0,
-	.debuglevel = "NOTICE",
-};
-
-enum {OPT_EVENTSYSTEM=1};
-
-static void ctdb_cmdline_callback(poptContext con, 
-				  enum poptCallbackReason reason,
-				  const struct poptOption *opt,
-				  const char *arg, const void *data)
-{
-	switch (opt->val) {
-	case OPT_EVENTSYSTEM:
-		tevent_set_default_backend(arg);
-		break;
-	}
-}
-
-
-struct poptOption popt_ctdb_cmdline[] = {
-	{ NULL, 0, POPT_ARG_CALLBACK, (void *)ctdb_cmdline_callback },	
-	{ "socket", 0, POPT_ARG_STRING, &ctdb_cmdline.socketname, 0, "local socket name", "filename" },
-	{ "debug", 'd', POPT_ARG_STRING, &ctdb_cmdline.debuglevel, 0, "debug level"},
-	{ "torture", 0, POPT_ARG_NONE, &ctdb_cmdline.torture, 0, "enable nastiness in library", NULL },
-	{ "events", 0, POPT_ARG_STRING, NULL, OPT_EVENTSYSTEM, "event system", NULL },
-	{ NULL }
-};
-
-
-/*
-  startup daemon side of ctdb according to command line options
- */
-struct ctdb_context *ctdb_cmdline_init(struct tevent_context *ev)
-{
-	struct ctdb_context *ctdb;
-	enum debug_level log_level;
-	int ret;
-
-	/* initialise ctdb */
-	ctdb = ctdb_init(ev);
-	if (ctdb == NULL) {
-		printf("Failed to init ctdb\n");
-		exit(1);
-	}
-
-	if (ctdb_cmdline.torture) {
-		ctdb_set_flags(ctdb, CTDB_FLAG_TORTURE);
-	}
-
-	/* command line specified a socket name */
-	if (ctdb_cmdline.socketname != NULL) {
-		setenv("CTDB_SOCKET", ctdb_cmdline.socketname, 1);
-		ret = ctdb_set_socketname(ctdb, ctdb_cmdline.socketname);
-		if (ret == -1) {
-			printf("ctdb_set_socketname failed - %s\n",
-						    ctdb_errstr(ctdb));
-			exit(1);
-		}
-	}
-
-	/* Set the debug level */
-	if (debug_level_parse(ctdb_cmdline.debuglevel, &log_level)) {
-		DEBUGLEVEL = debug_level_to_int(log_level);
-	} else {
-		DEBUGLEVEL = debug_level_to_int(DEBUG_NOTICE);
-	}
-
-	return ctdb;
-}
-
-
-/*
-  startup a client only ctdb context
- */
-struct ctdb_context *ctdb_cmdline_client(struct tevent_context *ev,
-					 struct timeval req_timeout)
-{
-	struct ctdb_context *ctdb;
-	enum debug_level log_level;
-	char *socket_name;
-	int ret;
-
-	/* initialise ctdb */
-	ctdb = ctdb_init(ev);
-	if (ctdb == NULL) {
-		fprintf(stderr, "Failed to init ctdb\n");
-		exit(1);
-	}
-
-	/* tell ctdb the socket address */
-	socket_name = getenv("CTDB_SOCKET");
-	if (socket_name != NULL) {
-		ret = ctdb_set_socketname(ctdb, socket_name);
-		if (ret == -1) {
-			printf("ctdb_set_socketname failed - %s\n",
-						    ctdb_errstr(ctdb));
-			exit(1);
-		}
-	}
-
-	if (ctdb_cmdline.socketname != NULL) {
-		ret = ctdb_set_socketname(ctdb, ctdb_cmdline.socketname);
-		if (ret == -1) {
-			fprintf(stderr, "ctdb_set_socketname failed - %s\n",
-					ctdb_errstr(ctdb));
-			exit(1);
-		}
-	}
-
-	/* Set the debug level */
-	if (debug_level_parse(ctdb_cmdline.debuglevel, &log_level)) {
-		DEBUGLEVEL = debug_level_to_int(log_level);
-	} else {
-		DEBUGLEVEL = debug_level_to_int(DEBUG_NOTICE);
-	}
-
-	ret = ctdb_socket_connect(ctdb);
-	if (ret != 0) {
-		fprintf(stderr, __location__ " Failed to connect to daemon\n");
-		talloc_free(ctdb);
-		return NULL;
-	}
-
-	/* get our pnn */
-	ctdb->pnn = ctdb_ctrl_getpnn(ctdb, req_timeout, CTDB_CURRENT_NODE);
-	if (ctdb->pnn == (uint32_t)-1) {
-		DEBUG(DEBUG_CRIT,(__location__ " Failed to get ctdb pnn\n"));
-		talloc_free(ctdb);
-		return NULL;
-	}
-
-	return ctdb;
-}
diff --git a/ctdb/common/cmdline.h b/ctdb/common/cmdline.h
deleted file mode 100644
index 0285b4d..0000000
--- a/ctdb/common/cmdline.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef CTDB_CMDLINE_H
-#define CTDB_CMDLINE_H
-
-extern struct poptOption popt_ctdb_cmdline[];
-
-#define POPT_CTDB_CMDLINE { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_ctdb_cmdline, 0, "Common ctdb options:", NULL },
-
-struct ctdb_context *ctdb_cmdline_init(struct tevent_context *ev);
-
-struct ctdb_context *ctdb_cmdline_client(struct tevent_context *ev,
-					 struct timeval req_timeout);
-
-#endif /* CTDB_CMDLINE_H */
diff --git a/ctdb/common/tunable.c b/ctdb/common/tunable.c
index 44e0cc5..5f36088 100644
--- a/ctdb/common/tunable.c
+++ b/ctdb/common/tunable.c
@@ -119,7 +119,7 @@ static struct {
 		offsetof(struct ctdb_tunable_list, deferred_attach_timeout) },
 	{ "AllowClientDBAttach", 1, false,
 		offsetof(struct ctdb_tunable_list, allow_client_db_attach) },
-	{ "RecoverPDBBySeqNum", 1, false,
+	{ "RecoverPDBBySeqNum", 1, true,
 		offsetof(struct ctdb_tunable_list, recover_pdb_by_seqnum) },
 	{ "DeferredRebalanceOnNodeAdd", 300, true,
 		offsetof(struct ctdb_tunable_list, deferred_rebalance_on_node_add) },
diff --git a/ctdb/doc/ctdb-tunables.7.xml b/ctdb/doc/ctdb-tunables.7.xml
index 088e822..8143a45 100644
--- a/ctdb/doc/ctdb-tunables.7.xml
+++ b/ctdb/doc/ctdb-tunables.7.xml
@@ -462,27 +462,6 @@
     </refsect2>
 
     <refsect2>
-      <title>RecoverPDBBySeqNum</title>
-      <para>Default: 1</para>
-      <para>
-	When set to zero, database recovery for persistent databases is
-	record-by-record and recovery process simply collects the most
-	recent version of every individual record.
-      </para>
-      <para>
-	When set to non-zero, persistent databases will instead be
-	recovered as a whole db and not by individual records. The
-	node that contains the highest value stored in the record
-	"__db_sequence_number__" is selected and the copy of that nodes
-	database is used as the recovered database.
-      </para>
-      <para>
-	By default, recovery of persistent databses is done using
-	__db_sequence_number__ record.
-      </para>
-    </refsect2>
-
-    <refsect2>
       <title>RecoverTimeout</title>
       <para>Default: 120</para>
       <para>
diff --git a/ctdb/server/ctdb_recoverd.c b/ctdb/server/ctdb_recoverd.c
index 92ba35f..6861833 100644
--- a/ctdb/server/ctdb_recoverd.c
+++ b/ctdb/server/ctdb_recoverd.c
@@ -38,7 +38,6 @@
 #include "ctdb_client.h"
 
 #include "common/system.h"
-#include "common/cmdline.h"
 #include "common/common.h"
 #include "common/logging.h"
 
diff --git a/ctdb/server/ctdb_recovery_helper.c b/ctdb/server/ctdb_recovery_helper.c
index d54c290..7dfb707 100644
--- a/ctdb/server/ctdb_recovery_helper.c
+++ b/ctdb/server/ctdb_recovery_helper.c
@@ -1705,7 +1705,7 @@ static void recover_db_transaction_started(struct tevent_req *subreq)
 		return;
 	}
 
-	if (state->persistent && state->tun_list->recover_pdb_by_seqnum != 0) {
+	if (state->persistent) {
 		subreq = collect_highseqnum_db_send(
 				state, state->ev, state->client,
 				state->pnn_list, state->count, state->caps,
@@ -1734,7 +1734,7 @@ static void recover_db_collect_done(struct tevent_req *subreq)
 	int ret;
 	bool status;
 
-	if (state->persistent && state->tun_list->recover_pdb_by_seqnum != 0) {
+	if (state->persistent) {
 		status = collect_highseqnum_db_recv(subreq, &ret);
 	} else {
 		status = collect_all_db_recv(subreq, &ret);
diff --git a/ctdb/server/ctdbd.c b/ctdb/server/ctdbd.c
index aecb7e0..99bb715 100644
--- a/ctdb/server/ctdbd.c
+++ b/ctdb/server/ctdbd.c
@@ -36,11 +36,12 @@
 
 #include "common/reqid.h"
 #include "common/system.h"
-#include "common/cmdline.h"
 #include "common/common.h"
 #include "common/logging.h"
 
 static struct {
+	const char *socket;
+	const char *debuglevel;
 	const char *nlist;
 	const char *transport;
 	const char *myaddress;
@@ -62,7 +63,9 @@ static struct {
 	int	    script_log_level;
 	int         no_publicipcheck;
 	int         max_persistent_check_errors;
+	int         torture;
 } options = {
+	.socket = CTDB_RUNDIR "/ctdbd.socket",
 	.nlist = NULL,
 	.public_address_list = NULL,
 	.transport = "tcp",
@@ -116,7 +119,8 @@ int main(int argc, const char *argv[])
 
 	struct poptOption popt_options[] = {
 		POPT_AUTOHELP
-		POPT_CTDB_CMDLINE
+		{ "socket", 0, POPT_ARG_STRING, &options.socket, 0, "local socket name", "filename" },
+		{ "debug", 'd', POPT_ARG_STRING, &options.debuglevel, 0, "debug level", NULL },
 		{ "interactive", 'i', POPT_ARG_NONE, &interactive, 0, "don't fork", NULL },
 		{ "public-addresses", 0, POPT_ARG_STRING, &options.public_address_list, 0, "public address list file", "filename" },
 		{ "public-interface", 0, POPT_ARG_STRING, &options.public_interface, 0, "public interface", "interface"},
@@ -143,6 +147,7 @@ int main(int argc, const char *argv[])
 		  &options.max_persistent_check_errors, 0,
 		  "max allowed persistent check errors (default 0)", NULL },
 		{ "sloppy-start", 0, POPT_ARG_NONE, &fast_start, 0, "Do not perform full recovery on start", NULL },
+		{ "torture", 0, POPT_ARG_NONE, &options.torture, 0, "enable nastiness in library", NULL },
 		POPT_TABLEEND
 	};
 	int opt, ret;
@@ -150,6 +155,7 @@ int main(int argc, const char *argv[])
 	int extra_argc = 0;
 	poptContext pc;
 	struct tevent_context *ev;
+	enum debug_level log_level;
 
 	pc = poptGetContext(argv[0], argc, argv, popt_options, POPT_CONTEXT_KEEP_FIRST);
 
@@ -180,7 +186,29 @@ int main(int argc, const char *argv[])
 	}
 	tevent_loop_allow_nesting(ev);
 
-	ctdb = ctdb_cmdline_init(ev);
+	ctdb = ctdb_init(ev);
+	if (ctdb == NULL) {
+		fprintf(stderr, "Failed to init ctdb\n");
+		exit(1);
+	}
+
+	if (options.torture == 1) {
+		ctdb_set_flags(ctdb, CTDB_FLAG_TORTURE);
+	}
+
+	/* Set the debug level */
+	if (debug_level_parse(options.debuglevel, &log_level)) {
+		DEBUGLEVEL = debug_level_to_int(log_level);
+	} else {
+		DEBUGLEVEL = debug_level_to_int(DEBUG_NOTICE);
+	}
+
+	setenv("CTDB_SOCKET", options.socket, 1);
+	ret = ctdb_set_socketname(ctdb, options.socket);
+	if (ret == -1) {
+		fprintf(stderr, "ctdb_set_socketname() failed\n");
+		exit(1);
+	}
 
 	ctdb->start_as_disabled = options.start_as_disabled;
 	ctdb->start_as_stopped  = options.start_as_stopped;
diff --git a/ctdb/tests/simple/70_recoverpdbbyseqnum.sh b/ctdb/tests/simple/70_recoverpdbbyseqnum.sh
index a4765b1..255d58d 100755
--- a/ctdb/tests/simple/70_recoverpdbbyseqnum.sh
+++ b/ctdb/tests/simple/70_recoverpdbbyseqnum.sh
@@ -3,16 +3,10 @@
 test_info()
 {
     cat <<EOF
-The tunable RecoverPDBBySeqNum controls how we perform recovery
-on persistent databases.
-The default is that persistent databases are recovered exactly the same
-way as normal databases. That is that we recover record by record.
-
-If RecoverPDBBySeqNum is set to 1 AND if a record with the key
-"__db_sequence_number__" can be found in the database, then instead we will
-perform the recovery by picking the copy of the database from the node
-that has the highest sequence number and ignore the content on all other
-nodes.
+The persistent databases are recovered using sequence number.
+The recovery is performed by picking the copy of the database from the
+node that has the highest sequence number and ignore the content on all
+other nodes.
 
 
 Prerequisites:
@@ -23,19 +17,12 @@ Steps:
 
 1. Verify that the status on all of the ctdb nodes is 'OK'.
 2. create a persistent test database
-3. test that RecoveryPDBBySeqNum==0 and no seqnum record blends the database
-   during recovery
-4. test that RecoveryPDBBySeqNum==0 and seqnum record blends the database
-   during recovery
-5. test that RecoveryPDBBySeqNum==1 and no seqnum record blends the database
-   during recovery
-6. test that RecoveryPDBBySeqNum==1 and seqnum record does not blend the database
-   during recovery
+3. test that no seqnum record blends the database during recovery
+4. test that seqnum record does not blend the database during recovery
 
 Expected results:
 
-* that 3,4,5 will blend the databases and that 6 will recovery the highest seqnum
-  database
+* that 3,4 will recover the highest seqnum database
 
 EOF
 }
@@ -70,90 +57,14 @@ test_db="persistent_test.tdb"
 echo "Create persistent test database \"$test_db\""
 try_command_on_node 0 $CTDB attach "$test_db" persistent
 
-
-echo "Setting RecoverPDBBySeqNum=0"
-try_command_on_node all $CTDB setvar "RecoverPDBBySeqNum" 0
-
-# 3.
-# If RecoverPDBBySeqNum==0  and no __db_sequence_number__
-# recover record by record
+# 3,
+# If no __db_sequence_number__ recover whole database
 #
-# wipe database
-echo
-echo "Test that RecoverPDBBySeqNum=0 and no __db_sequence_number__ blends the database during recovery"
-
-echo "Wipe test database"
-try_command_on_node 0 $CTDB wipedb "$test_db"
-
-add_record_per_node
-
-# force a recovery
-echo "Force a recovery"
-try_command_on_node 0 $CTDB recover
-
-# check that we now have both records on node 0
-num_records=$(db_ctdb_cattdb_count_records 0 "$test_db")
-if [ $num_records = "$num_nodes" ] ; then
-    echo "OK: databases were blended"
-else
-    echo "BAD: we did not end up with the expected $num_nodes records after the recovery"
-    exit 1
-fi
-
-# 4.
-# If RecoverPDBBySeqNum==0  and __db_sequence_number__
-# recover record by record
-#
-# wipe database
-echo
-echo "Test that RecoverPDBBySeqNum=0 and __db_sequence_number__ blends the database during recovery"
-
-echo "Wipe the test database"
-try_command_on_node 0 $CTDB wipedb persistent_test.tdb
-
-add_record_per_node
-
-echo "Add __db_sequence_number__==5 record to all nodes"
-pnn=0
-while [ $pnn -lt $num_nodes ] ; do
-    db_ctdb_tstore_dbseqnum $pnn "$test_db" 5
-    pnn=$(($pnn + 1))
-done
-
-echo "Set __db_sequence_number__ to 7 on node 0"
-db_ctdb_tstore_dbseqnum 0 "$test_db" 7
 
-echo "Set __db_sequence_number__ to 8 on node 1"
-db_ctdb_tstore_dbseqnum 1 "$test_db" 8
-
-# force a recovery
-echo "Force a recovery"
-try_command_on_node 0 $CTDB recover
-
-# check that we now have both records on node 0
-num_records=$(db_ctdb_cattdb_count_records 0 "$test_db")
-if [ $num_records = "$num_nodes" ] ; then
-    echo "OK: databases were blended"
-else
-    echo "BAD: we did not end up with the expected $num_nodes records after the recovery"
-    try_command_on_node -v 0 $CTDB cattdb "$test_db"
-    exit 1
-fi
-
-
-# set RecoverPDBBySeqNum=1
 echo
-echo "Setting RecoverPDBBySeqNum to 1"
-try_command_on_node all $CTDB setvar "RecoverPDBBySeqNum" 1
-


-- 
Samba Shared Repository



More information about the samba-cvs mailing list