[SCM] Samba Shared Repository - branch master updated

Amitay Isaacs amitay at samba.org
Wed Jul 19 09:58:01 UTC 2023


The branch, master has been updated
       via  6e4c7ae9a2e ctdb-tests: Log to stderr in statd-callout tests
       via  ef15a34d5dd ctdb-scripts: Support script logging to stderr
       via  0ac9413735a ctdb-scripts: Avoid ShellCheck warning SC2162
       via  59c5010b6ec ctdb-scripts: Reformat with "shfmt -w -p -i 0 -fn"
       via  2e2d81b92a9 ctdb-recoverd: CID 1509028 - Use of 32-bit time_t (Y2K38_SAFETY)
       via  862fc5770cb ctdb: Do not use egrep
       via  4deb178eb3e ctdb-doc: Correct bit-rotted documenation
       via  dbbede407f7 ctdb-utils: Drop unused scsi_io.c source file
      from  7c0a1c1e13f s3:winbind: Set/unset the winbind_call_flow callback if log level changes

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


- Log -----------------------------------------------------------------
commit 6e4c7ae9a2e2be4375a33e7361b8748f9307dbfe
Author: Martin Schwenke <mschwenke at ddn.com>
Date:   Sun Jul 16 20:55:57 2023 +1000

    ctdb-tests: Log to stderr in statd-callout tests
    
    Errors logged when testing statd-callout don't currently go anywhere.
    This is because arguments to the hacked version of script_log() are
    ignored.
    
    Remove the hack and configure logging to stderr.
    
    This could go in the local statd-callout.sh setup script.  However,
    make it available for other script tests.
    
    Signed-off-by: Martin Schwenke <mschwenke at ddn.com>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    
    Autobuild-User(master): Amitay Isaacs <amitay at samba.org>
    Autobuild-Date(master): Wed Jul 19 09:57:37 UTC 2023 on atb-devel-224

commit ef15a34d5dd0d90e52f0fc76123077bebba949e9
Author: Martin Schwenke <mschwenke at ddn.com>
Date:   Sun Jul 16 20:52:54 2023 +1000

    ctdb-scripts: Support script logging to stderr
    
    Logging in statd-callout tests is currently useless.  This will
    provide a way of seeing errors in those tests.
    
    Signed-off-by: Martin Schwenke <mschwenke at ddn.com>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

commit 0ac9413735a6da449d565ff30c1e9005c739d394
Author: Martin Schwenke <mschwenke at ddn.com>
Date:   Sun Jul 16 20:49:57 2023 +1000

    ctdb-scripts: Avoid ShellCheck warning SC2162
    
      SC2162 read without -r will mangle backslashes.
    
    Signed-off-by: Martin Schwenke <mschwenke at ddn.com>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

commit 59c5010b6eca2f529073a348656db8f42f414365
Author: Martin Schwenke <mschwenke at ddn.com>
Date:   Sun Jul 16 20:47:09 2023 +1000

    ctdb-scripts: Reformat with "shfmt -w -p -i 0 -fn"
    
    Signed-off-by: Martin Schwenke <mschwenke at ddn.com>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

commit 2e2d81b92a98f97f404f536368178de3c1bfb284
Author: Martin Schwenke <mschwenke at ddn.com>
Date:   Wed Oct 12 09:05:25 2022 +1100

    ctdb-recoverd: CID 1509028 - Use of 32-bit time_t (Y2K38_SAFETY)
    
    usecs is going to be passed as a uint32_t.  There is no need to
    calculate it as a time_t.
    
    Signed-off-by: Martin Schwenke <mschwenke at ddn.com>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

commit 862fc5770cb672e91622fdfc01a46dc155a8c723
Author: Martin Schwenke <mschwenke at ddn.com>
Date:   Tue Jul 11 08:03:22 2023 +1000

    ctdb: Do not use egrep
    
    On some platforms, egrep prints a deprecation warning to stderr:
    
      egrep: warning: egrep is obsolescent; using grep -E
    
    Use grep -E instead.
    
    This is nice and simple, so no use splitting this commit into 2
    separate commits for each of tools and test.
    
    Signed-off-by: Martin Schwenke <mschwenke at ddn.com>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

commit 4deb178eb3e1c3236cc9a272336909305af0ad77
Author: Martin Schwenke <mschwenke at ddn.com>
Date:   Fri Jun 16 13:29:22 2023 +1000

    ctdb-doc: Correct bit-rotted documenation
    
    Loading tunables is now done in ctdbd, so find another example for the
    "setup" event.
    
    Signed-off-by: Martin Schwenke <mschwenke at ddn.com>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

commit dbbede407f79a8e8a0526f9540bb8d70c9f1c5c8
Author: Martin Schwenke <mschwenke at ddn.com>
Date:   Thu Mar 23 10:24:49 2023 +1100

    ctdb-utils: Drop unused scsi_io.c source file
    
    It will be in the git history if we ever decide to use SCSI persistent
    reservations as a cluster lock.
    
    Signed-off-by: Martin Schwenke <mschwenke at ddn.com>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

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

Summary of changes:
 ctdb/config/events/README                          |    2 +-
 ctdb/config/functions                              |  966 ++++++++--------
 ctdb/server/ctdb_recoverd.c                        |    2 +-
 ctdb/tests/CLUSTER/complex/scripts/local.bash      |    2 +-
 .../INTEGRATION/simple/cluster.090.unreachable.sh  |    2 +-
 ctdb/tests/UNIT/eventscripts/etc-ctdb/rc.local     |    5 -
 ctdb/tests/UNIT/eventscripts/scripts/local.sh      |    4 +-
 ctdb/tools/ctdb_diagnostics                        |    2 +-
 ctdb/utils/scsi_io/scsi_io.c                       | 1152 --------------------
 9 files changed, 495 insertions(+), 1642 deletions(-)
 delete mode 100644 ctdb/utils/scsi_io/scsi_io.c


Changeset truncated at 500 lines:

diff --git a/ctdb/config/events/README b/ctdb/config/events/README
index 6ee6e6fae78..6553830326a 100644
--- a/ctdb/config/events/README
+++ b/ctdb/config/events/README
@@ -54,7 +54,7 @@ setup
 
 	Failure of this event will cause CTDB to terminate.
 
-	Example: 00.ctdb processes tunables defined in ctdb.tunables.
+	Example: 11.natgw checks that it has valid configuration
 
 startup
 
diff --git a/ctdb/config/functions b/ctdb/config/functions
index 3e46fb496a3..56105aab165 100755
--- a/ctdb/config/functions
+++ b/ctdb/config/functions
@@ -2,9 +2,9 @@
 
 # utility functions for ctdb event scripts
 
-if [ -z "$CTDB_BASE" ] ; then
-    echo 'CTDB_BASE unset in CTDB functions file'
-    exit 1
+if [ -z "$CTDB_BASE" ]; then
+	echo 'CTDB_BASE unset in CTDB functions file'
+	exit 1
 fi
 export CTDB_BASE
 
@@ -16,24 +16,24 @@ CTDB="${CTDB:-/usr/local/bin/ctdb}"
 
 # Only (and always) override these variables in test code
 
-if [ -z "$CTDB_SCRIPT_VARDIR" ] ; then
-    CTDB_SCRIPT_VARDIR="/usr/local/var/lib/ctdb/scripts"
+if [ -z "$CTDB_SCRIPT_VARDIR" ]; then
+	CTDB_SCRIPT_VARDIR="/usr/local/var/lib/ctdb/scripts"
 fi
 
-if [ -z "$CTDB_SYS_ETCDIR" ] ; then
-    CTDB_SYS_ETCDIR="/etc"
+if [ -z "$CTDB_SYS_ETCDIR" ]; then
+	CTDB_SYS_ETCDIR="/etc"
 fi
 
-if [ -z "$CTDB_HELPER_BINDIR" ] ; then
-    CTDB_HELPER_BINDIR="/usr/local/libexec/ctdb"
+if [ -z "$CTDB_HELPER_BINDIR" ]; then
+	CTDB_HELPER_BINDIR="/usr/local/libexec/ctdb"
 fi
 
 #######################################
 # pull in a system config file, if any
 
-load_system_config ()
+load_system_config()
 {
-	for _i ; do
+	for _i; do
 
 		if [ -f "${CTDB_SYS_ETCDIR}/sysconfig/${_i}" ]; then
 			. "${CTDB_SYS_ETCDIR}/sysconfig/${_i}"
@@ -48,11 +48,11 @@ load_system_config ()
 # load_script_options [ component script ]
 #   script is an event script name relative to a component
 #   component is currently ignored
-load_script_options ()
+load_script_options()
 {
-	if [ $# -eq 2 ] ; then
+	if [ $# -eq 2 ]; then
 		_script="$2"
-	elif [ $# -eq 0  ] ; then
+	elif [ $# -eq 0 ]; then
 		_script=""
 	else
 		die "usage: load_script_options [ component script ]"
@@ -60,92 +60,100 @@ load_script_options ()
 
 	_options="${CTDB_BASE}/script.options"
 
-	if [ -r "$_options" ] ; then
+	if [ -r "$_options" ]; then
 		. "$_options"
 	fi
 
-	if [ -n "$_script" ] ; then
+	if [ -n "$_script" ]; then
 		_s="${CTDB_BASE}/events/legacy/${_script}"
 	else
 		_s="${0%.script}"
 	fi
 	_options="${_s}.options"
 
-	if [ -r "$_options" ] ; then
+	if [ -r "$_options" ]; then
 		. "$_options"
 	fi
 }
 
 ##############################################################
 
-die ()
+die()
 {
-    _msg="$1"
-    _rc="${2:-1}"
+	_msg="$1"
+	_rc="${2:-1}"
 
-    echo "$_msg" >&2
-    exit "$_rc"
+	echo "$_msg" >&2
+	exit "$_rc"
 }
 
 # Log given message or stdin to either syslog or a CTDB log file
 # $1 is the tag passed to logger if syslog is in use.
-script_log ()
-{
-    _tag="$1" ; shift
-
-    case "$CTDB_LOGGING" in
-	file:*|"")
-	    if [ -n "$CTDB_LOGGING" ] ; then
-		_file="${CTDB_LOGGING#file:}"
-	    else
-		_file="/usr/local/var/log/log.ctdb"
-	    fi
-	    {
+script_log()
+{
+	_tag="$1"
+	shift
+
+	case "$CTDB_LOGGING" in
+	file:)
 		if [ -n "$*" ] ; then
-		    echo "$*"
+			echo "$*"
+		else
+			cat
+		fi >&2
+		;;
+	file:* | "")
+		if [ -n "$CTDB_LOGGING" ]; then
+			_file="${CTDB_LOGGING#file:}"
 		else
-		    cat
+			_file="/usr/local/var/log/log.ctdb"
 		fi
-	    } >>"$_file"
-	    ;;
+		{
+			if [ -n "$*" ]; then
+				echo "$*"
+			else
+				cat
+			fi
+		} >>"$_file"
+		;;
 	*)
-	    # Handle all syslog:* variants here too.  There's no tool to do
-	    # the lossy things, so just use logger.
-	    logger -t "ctdbd: ${_tag}" "$@"
-	    ;;
-    esac
+		# Handle all syslog:* variants here too.  There's no tool to do
+		# the lossy things, so just use logger.
+		logger -t "ctdbd: ${_tag}" "$@"
+		;;
+	esac
 }
 
 # When things are run in the background in an eventscript then logging
 # output might get lost.  This is the "solution".  :-)
-background_with_logging ()
+background_with_logging()
 {
-    (
-	"$@" 2>&1 </dev/null |
-	script_log "${script_name}&"
-    )&
+	(
+		"$@" 2>&1 </dev/null |
+			script_log "${script_name}&"
+	) &
 
-    return 0
+	return 0
 }
 
 ##############################################################
 # check number of args for different events
-ctdb_check_args ()
+ctdb_check_args()
 {
-    case "$1" in
-	takeip|releaseip)
-	    if [ $# != 4 ]; then
-		echo "ERROR: must supply interface, IP and maskbits"
-		exit 1
-	    fi
-	    ;;
+	case "$1" in
+	takeip | releaseip)
+		if [ $# != 4 ]; then
+			echo "ERROR: must supply interface, IP and maskbits"
+			exit 1
+		fi
+		;;
 	updateip)
-	    if [ $# != 5 ]; then
-		echo "ERROR: must supply old interface, new interface, IP and maskbits"
-		exit 1
-	    fi
-	    ;;
-    esac
+		if [ $# != 5 ]; then
+			echo "ERROR: must supply old interface, new interface, IP and maskbits"
+			exit 1
+		fi
+		;;
+	esac
 }
 
 ##############################################################
@@ -153,7 +161,7 @@ ctdb_check_args ()
 detect_init_style()
 {
 	# only do detection if not already set:
-	if [ -n "$CTDB_INIT_STYLE" ] ; then
+	if [ -n "$CTDB_INIT_STYLE" ]; then
 		return
 	fi
 
@@ -170,100 +178,100 @@ detect_init_style()
 # simulate /sbin/service on platforms that don't have it
 # _service() makes it easier to hook the service() function for
 # testing.
-_service ()
+_service()
 {
-  _service_name="$1"
-  _op="$2"
-
-  # do nothing, when no service was specified
-  [ -z "$_service_name" ] && return
-
-  if [ -x /sbin/service ]; then
-      $_nice /sbin/service "$_service_name" "$_op"
-  elif [ -x /usr/sbin/service ]; then
-      $_nice /usr/sbin/service "$_service_name" "$_op"
-  elif [ -x /bin/systemctl ]; then
-      $_nice /bin/systemctl "$_op" "$_service_name"
-  elif [ -x "${CTDB_SYS_ETCDIR}/init.d/${_service_name}" ]; then
-      $_nice "${CTDB_SYS_ETCDIR}/init.d/${_service_name}" "$_op"
-  elif [ -x "${CTDB_SYS_ETCDIR}/rc.d/init.d/${_service_name}" ]; then
-      $_nice "${CTDB_SYS_ETCDIR}/rc.d/init.d/${_service_name}" "$_op"
-  fi
+	_service_name="$1"
+	_op="$2"
+
+	# do nothing, when no service was specified
+	[ -z "$_service_name" ] && return
+
+	if [ -x /sbin/service ]; then
+		$_nice /sbin/service "$_service_name" "$_op"
+	elif [ -x /usr/sbin/service ]; then
+		$_nice /usr/sbin/service "$_service_name" "$_op"
+	elif [ -x /bin/systemctl ]; then
+		$_nice /bin/systemctl "$_op" "$_service_name"
+	elif [ -x "${CTDB_SYS_ETCDIR}/init.d/${_service_name}" ]; then
+		$_nice "${CTDB_SYS_ETCDIR}/init.d/${_service_name}" "$_op"
+	elif [ -x "${CTDB_SYS_ETCDIR}/rc.d/init.d/${_service_name}" ]; then
+		$_nice "${CTDB_SYS_ETCDIR}/rc.d/init.d/${_service_name}" "$_op"
+	fi
 }
 
 service()
 {
-    _nice=""
-    _service "$@"
+	_nice=""
+	_service "$@"
 }
 
 ######################################################
 # simulate /sbin/service (niced) on platforms that don't have it
 nice_service()
 {
-    _nice="nice"
-    _service "$@"
+	_nice="nice"
+	_service "$@"
 }
 
 ######################################################
 # Cached retrieval of PNN from local node.  This never changes so why
 # open a client connection to the server each time this is needed?
-ctdb_get_pnn ()
+ctdb_get_pnn()
 {
-    _pnn_file="${CTDB_SCRIPT_VARDIR}/my-pnn"
-    if [ ! -f "$_pnn_file" ] ; then
-	$CTDB pnn >"$_pnn_file"
-    fi
+	_pnn_file="${CTDB_SCRIPT_VARDIR}/my-pnn"
+	if [ ! -f "$_pnn_file" ]; then
+		$CTDB pnn >"$_pnn_file"
+	fi
 
-    cat "$_pnn_file"
+	cat "$_pnn_file"
 }
 
 # Cached retrieval of private IP address from local node.  This never
 # changes.
-ctdb_get_ip_address ()
+ctdb_get_ip_address()
 {
-    _ip_addr_file="${CTDB_SCRIPT_VARDIR}/my-ip-address"
-    if [ ! -f "$_ip_addr_file" ] ; then
-	$CTDB -X nodestatus |
-	    awk -F '|' 'NR == 2 { print $3 }' >"$_ip_addr_file"
-    fi
+	_ip_addr_file="${CTDB_SCRIPT_VARDIR}/my-ip-address"
+	if [ ! -f "$_ip_addr_file" ]; then
+		$CTDB -X nodestatus |
+			awk -F '|' 'NR == 2 { print $3 }' >"$_ip_addr_file"
+	fi
 
-    cat "$_ip_addr_file"
+	cat "$_ip_addr_file"
 }
 
 # Cached retrieval of database options for use by event scripts.
 #
 # If the variables are already set then they should not be overwritten
 # - this should only happen during event script testing.
-ctdb_get_db_options ()
+ctdb_get_db_options()
 {
 	_db_opts_file="${CTDB_SCRIPT_VARDIR}/db_options.cache"
 
-	if [ ! -f "$_db_opts_file" ] ; then
+	if [ ! -f "$_db_opts_file" ]; then
 		{
 			ctdb_translate_option "database" \
-					      "volatile database directory" \
-					      "CTDB_DBDIR"
+				"volatile database directory" \
+				"CTDB_DBDIR"
 			ctdb_translate_option "database" \
-					      "persistent database directory" \
-					      "CTDB_DBDIR_PERSISTENT"
+				"persistent database directory" \
+				"CTDB_DBDIR_PERSISTENT"
 			ctdb_translate_option "database" \
-					      "state database directory" \
-					      "CTDB_DBDIR_STATE"
+				"state database directory" \
+				"CTDB_DBDIR_STATE"
 		} >"$_db_opts_file"
 	fi
 
 	. "$_db_opts_file"
 }
 
-ctdb_translate_option ()
+ctdb_translate_option()
 {
 	_section="$1"
 	_opt="$2"
 	_variable="$3"
 
 	# ctdb-config already prints an error if something goes wrong
-	_t=$("${CTDB_HELPER_BINDIR}/ctdb-config" get "$_section" "$_opt") || \
+	_t=$("${CTDB_HELPER_BINDIR}/ctdb-config" get "$_section" "$_opt") ||
 		exit $?
 	echo "${_variable}=\"${_t}\""
 }
@@ -272,51 +280,51 @@ ctdb_translate_option ()
 # wrapper around /proc/ settings to allow them to be hooked
 # for testing
 # 1st arg is relative path under /proc/, 2nd arg is value to set
-set_proc ()
+set_proc()
 {
-    echo "$2" >"/proc/$1"
+	echo "$2" >"/proc/$1"
 }
 
-set_proc_maybe ()
+set_proc_maybe()
 {
-    if [ -w "/proc/$1" ] ; then
-	set_proc "$1" "$2"
-    fi
+	if [ -w "/proc/$1" ]; then
+		set_proc "$1" "$2"
+	fi
 }
 
 ######################################################
 # wrapper around getting file contents from /proc/ to allow
 # this to be hooked for testing
 # 1st arg is relative path under /proc/
-get_proc ()
+get_proc()
 {
-    cat "/proc/$1"
+	cat "/proc/$1"
 }
 
 ######################################################
 # Print up to $_max kernel stack traces for processes named $_program
-program_stack_traces ()
+program_stack_traces()
 {
-    _prog="$1"
-    _max="${2:-1}"
-
-    _count=1
-    for _pid in $(pidof "$_prog") ; do
-	[ "$_count" -le "$_max" ] || break
-
-	# Do this first to avoid racing with process exit
-	_stack=$(get_proc "${_pid}/stack" 2>/dev/null)
-	if [ -n "$_stack" ] ; then
-	    echo "Stack trace for ${_prog}[${_pid}]:"
-	    echo "$_stack"
-	    _count=$((_count + 1))
-	fi
-    done
+	_prog="$1"
+	_max="${2:-1}"
+
+	_count=1
+	for _pid in $(pidof "$_prog"); do
+		[ "$_count" -le "$_max" ] || break
+
+		# Do this first to avoid racing with process exit
+		_stack=$(get_proc "${_pid}/stack" 2>/dev/null)
+		if [ -n "$_stack" ]; then
+			echo "Stack trace for ${_prog}[${_pid}]:"
+			echo "$_stack"
+			_count=$((_count + 1))
+		fi
+	done
 }
 
 ######################################################
 # Ensure $service_name is set
-assert_service_name ()
+assert_service_name()
 {
 	# service_name is set by the event script
 	# shellcheck disable=SC2154
@@ -330,15 +338,16 @@ assert_service_name ()
 ######################################################
 ctdb_check_directories_probe()
 {
-    while IFS="" read d ; do
-	case "$d" in
-	    *%*)
-		continue
-		;;
-	    *)
-		[ -d "${d}/." ] || return 1
-	esac
-    done
+	while IFS="" read -r d; do
+		case "$d" in
+		*%*)
+			continue
+			;;
+		*)
+			[ -d "${d}/." ] || return 1
+			;;
+		esac
+	done
 }
 
 ######################################################
@@ -347,10 +356,10 @@ ctdb_check_directories_probe()
 ######################################################
 ctdb_check_directories()
 {
-    ctdb_check_directories_probe || {
-	echo "ERROR: $service_name directory \"$d\" not available"
-	exit 1
-    }
+	ctdb_check_directories_probe || {
+		echo "ERROR: $service_name directory \"$d\" not available"
+		exit 1
+	}
 }
 


-- 
Samba Shared Repository



More information about the samba-cvs mailing list