[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