[SCM] Samba Shared Repository - branch master updated
Amitay Isaacs
amitay at samba.org
Tue Feb 18 04:23:03 UTC 2020
The branch, master has been updated
via 4de1e3207ba ctdb-docs: Provide example commands for "ctdb event ..."
via 3d5de9b26d4 ctdb-tests: Flag setup, startup, shutdown failures as test errors
via 455d931a168 ctdb-tests: Dump logs on shutdown failure
via 03403aacfe9 ctdb-tests: Avoid shutdown error when daemon already cleanly shut down
via dc076b835f3 ctdb-tests: Rationalise node stop/start/restart
via a20403adf87 ctdb-daemon: Fix signed/unsigned comparison
via c9405aec703 ctdb-daemon: Check for lock count underflow
via c16da0e8f09 ctdb-common: Remove signed/unsigned comparisons
from 195e88cea34 s3:modules: add vfs_io_uring module
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 4de1e3207ba8e68e6101f5cd94cf18144fd5ed8f
Author: Martin Schwenke <martin at meltin.net>
Date: Thu Feb 13 10:09:08 2020 +1100
ctdb-docs: Provide example commands for "ctdb event ..."
The example output doesn't tell a user what command generated it.
Adding the command makes the examples much more useful.
Reported-by: Stefan Kania <stefan at kania-online.de>
Signed-off-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Amitay Isaacs <amitay at gmail.com>
Autobuild-User(master): Amitay Isaacs <amitay at samba.org>
Autobuild-Date(master): Tue Feb 18 04:22:56 UTC 2020 on sn-devel-184
commit 3d5de9b26d4019e25d644c6e28e5f3a58f3f8730
Author: Martin Schwenke <martin at meltin.net>
Date: Fri Dec 6 16:12:08 2019 +1100
ctdb-tests: Flag setup, startup, shutdown failures as test errors
Signed-off-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Amitay Isaacs <amitay at gmail.com>
commit 455d931a16815f3b8ee47e2b1d5aeb13e76568b2
Author: Martin Schwenke <martin at meltin.net>
Date: Fri Dec 6 16:11:45 2019 +1100
ctdb-tests: Dump logs on shutdown failure
Signed-off-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Amitay Isaacs <amitay at gmail.com>
commit 03403aacfe9664bf4cb5689ae40ac1688984d6c6
Author: Martin Schwenke <martin at meltin.net>
Date: Mon Feb 17 16:29:05 2020 +1100
ctdb-tests: Avoid shutdown error when daemon already cleanly shut down
This depends on a small amount of internal knowledge but is the
cleanest way of avoiding errors for nodes that have already been shut
down.
Signed-off-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Amitay Isaacs <amitay at gmail.com>
commit dc076b835f30b1067155e2f440a3386331d15b5a
Author: Martin Schwenke <martin at meltin.net>
Date: Wed Dec 11 21:44:28 2019 +1100
ctdb-tests: Rationalise node stop/start/restart
Separate functions are not needed for stopping/starting/restarting
individual nodes. The stop and start functions essentially just use
onnode, though for local daemons this is embedded in local_daemons.sh.
So, just provide one stop and one start function that takes an
optional nodespec, defaulting to all nodes.
Restarting becomes common.
Signed-off-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Amitay Isaacs <amitay at gmail.com>
commit a20403adf871d2c1a646be0737935f85b55f8779
Author: Martin Schwenke <martin at meltin.net>
Date: Mon Feb 10 17:50:30 2020 +1100
ctdb-daemon: Fix signed/unsigned comparison
csbuild says:
ctdb/server/ctdb_lock.c: scope_hint: In function ‘ctdb_find_lock_context’
ctdb/server/ctdb_lock.c:671:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
Signed-off-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Amitay Isaacs <amitay at gmail.com>
commit c9405aec703a9bb90236ddcb860301339a59fee6
Author: Martin Schwenke <martin at meltin.net>
Date: Mon Feb 17 16:20:25 2020 +1100
ctdb-daemon: Check for lock count underflow
This is a programming error.
Signed-off-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Amitay Isaacs <amitay at gmail.com>
commit c16da0e8f09cb31baab7789ca8cd3bf34514bafc
Author: Amitay Isaacs <amitay at gmail.com>
Date: Mon Feb 17 17:00:47 2020 +1100
ctdb-common: Remove signed/unsigned comparisons
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
-----------------------------------------------------------------------
Summary of changes:
ctdb/common/cmdline.c | 10 ++---
ctdb/doc/ctdb.1.xml | 6 ++-
ctdb/include/ctdb_private.h | 2 +-
ctdb/server/ctdb_lock.c | 3 ++
.../tests/CLUSTER/complex/34_nfs_tickle_restart.sh | 2 +-
.../INTEGRATION/database/basics.002.attach.sh | 6 +--
.../simple/cluster.091.version_check.sh | 6 +--
ctdb/tests/local_daemons.sh | 5 ++-
ctdb/tests/scripts/integration.bash | 19 ++++++---
ctdb/tests/scripts/integration_local_daemons.bash | 45 +++++++++++-----------
ctdb/tests/scripts/integration_real_cluster.bash | 23 +++--------
11 files changed, 66 insertions(+), 61 deletions(-)
Changeset truncated at 500 lines:
diff --git a/ctdb/common/cmdline.c b/ctdb/common/cmdline.c
index fc4cb22f066..ce368a9b241 100644
--- a/ctdb/common/cmdline.c
+++ b/ctdb/common/cmdline.c
@@ -39,7 +39,7 @@ struct cmdline_context {
struct poptOption *options;
struct cmdline_section *section;
int num_sections;
- int max_len;
+ size_t max_len;
poptContext pc;
int argc, arg0;
const char **argv;
@@ -178,7 +178,7 @@ static bool cmdline_command_check(struct cmdline_command *cmd, size_t *max_len)
}
if (len > *max_len) {
- *max_len = (int)len;
+ *max_len = len;
}
len = strlen(cmd->msg_help);
@@ -490,14 +490,14 @@ static void cmdline_usage_command(struct cmdline_context *cmdline,
struct cmdline_command *cmd,
bool print_all)
{
- int len;
+ size_t len;
- len = (int)strlen(cmd->name);
+ len = strlen(cmd->name);
printf(" %s ", cmd->name);
if (print_all) {
printf("%-*s",
- cmdline->max_len-len,
+ (int)(cmdline->max_len-len),
cmd->msg_args == NULL ? "" : cmd->msg_args);
} else {
printf("%s", cmd->msg_args == NULL ? "" : cmd->msg_args);
diff --git a/ctdb/doc/ctdb.1.xml b/ctdb/doc/ctdb.1.xml
index a204583b62c..fe2b675ff2c 100644
--- a/ctdb/doc/ctdb.1.xml
+++ b/ctdb/doc/ctdb.1.xml
@@ -646,9 +646,10 @@ Interface[2]: Name:eth5 Link:up References:2 (active)
for each script.
</para>
<para>
- Example output:
+ Example
</para>
<screen>
+# ctdb event status legacy monitor
00.ctdb OK 0.014 Sat Dec 17 19:39:11 2016
01.reclock OK 0.013 Sat Dec 17 19:39:11 2016
05.system OK 0.029 Sat Dec 17 19:39:11 2016
@@ -684,9 +685,10 @@ Interface[2]: Name:eth5 Link:up References:2 (active)
provided by CTDB.
</para>
<para>
- Example output:
+ Example
</para>
<screen>
+# ctdb event script list legacy
* 00.ctdb
* 01.reclock
* 05.system
diff --git a/ctdb/include/ctdb_private.h b/ctdb/include/ctdb_private.h
index de7caef52af..405bf3b4186 100644
--- a/ctdb/include/ctdb_private.h
+++ b/ctdb/include/ctdb_private.h
@@ -376,7 +376,7 @@ struct ctdb_db_context {
struct lock_context *lock_current;
struct lock_context *lock_pending;
- int lock_num_current;
+ unsigned int lock_num_current;
struct db_hash_context *lock_log;
struct ctdb_call_state *pending_calls;
diff --git a/ctdb/server/ctdb_lock.c b/ctdb/server/ctdb_lock.c
index 5f032ae568b..478447d76f8 100644
--- a/ctdb/server/ctdb_lock.c
+++ b/ctdb/server/ctdb_lock.c
@@ -198,6 +198,9 @@ static int ctdb_lock_context_destructor(struct lock_context *lock_ctx)
} else {
DLIST_REMOVE(lock_ctx->ctdb->lock_current, lock_ctx);
}
+ if (lock_ctx->ctdb_db->lock_num_current == 0) {
+ ctdb_fatal(NULL, "Lock count is 0 before decrement\n");
+ }
lock_ctx->ctdb_db->lock_num_current--;
CTDB_DECREMENT_STAT(lock_ctx->ctdb, locks.num_current);
CTDB_DECREMENT_DB_STAT(lock_ctx->ctdb_db, locks.num_current);
diff --git a/ctdb/tests/CLUSTER/complex/34_nfs_tickle_restart.sh b/ctdb/tests/CLUSTER/complex/34_nfs_tickle_restart.sh
index 04d87af1b2e..5ab8a34faec 100755
--- a/ctdb/tests/CLUSTER/complex/34_nfs_tickle_restart.sh
+++ b/ctdb/tests/CLUSTER/complex/34_nfs_tickle_restart.sh
@@ -59,7 +59,7 @@ rn=$(awk -F'|' -v test_node=$test_node \
'$2 != test_node { print $2 ; exit }' <<<"$listnodes_output")
echo "Restarting CTDB on node ${rn}"
-restart_ctdb_1 $rn
+ctdb_nodes_restart "$rn"
# In some theoretical world this is racy. In practice, the node will
# take quite a while to become healthy, so this will beat any
diff --git a/ctdb/tests/INTEGRATION/database/basics.002.attach.sh b/ctdb/tests/INTEGRATION/database/basics.002.attach.sh
index b9ae9481d91..ae09741f980 100755
--- a/ctdb/tests/INTEGRATION/database/basics.002.attach.sh
+++ b/ctdb/tests/INTEGRATION/database/basics.002.attach.sh
@@ -86,7 +86,7 @@ testdb3="test_replicated.tdb"
test_node="0"
echo "Shutting down node $test_node"
-stop_ctdb_1 "$test_node"
+ctdb_nodes_stop "$test_node"
sleep 1
wait_until_node_has_status 1 recovered
try_command_on_node -v 1 $CTDB status
@@ -110,7 +110,7 @@ done
echo
echo "Start node $test_node"
-start_ctdb_1 "$test_node"
+ctdb_nodes_start "$test_node"
sleep 1
wait_until_ready
@@ -124,7 +124,7 @@ check_db $test_node $testdb3 REPLICATED
echo
echo "Restarting node $test_node"
-restart_ctdb_1 "$test_node"
+ctdb_nodes_restart "$test_node"
sleep 1
wait_until_ready
diff --git a/ctdb/tests/INTEGRATION/simple/cluster.091.version_check.sh b/ctdb/tests/INTEGRATION/simple/cluster.091.version_check.sh
index 4076047a8fe..fa934e8bef1 100755
--- a/ctdb/tests/INTEGRATION/simple/cluster.091.version_check.sh
+++ b/ctdb/tests/INTEGRATION/simple/cluster.091.version_check.sh
@@ -33,7 +33,7 @@ export CTDB_TEST_SAMBA_VERSION=$(( (major << 16) | minor ))
printf '\nRestarting node %d with CTDB_TEST_SAMBA_VERSION=0x%08x\n' \
"$test_node" \
"$CTDB_TEST_SAMBA_VERSION"
-restart_ctdb_1 "$test_node"
+ctdb_nodes_restart "$test_node"
wait_until_ready
echo "GOOD: ctdbd restarted successfully on node ${test_node}"
@@ -46,7 +46,7 @@ export CTDB_TEST_SAMBA_VERSION=$(( ((major + 1) << 16) | minor ))
printf '\nRestarting node %d with CTDB_TEST_SAMBA_VERSION=0x%08x\n' \
"$test_node" \
"$CTDB_TEST_SAMBA_VERSION"
-restart_ctdb_1 "$test_node"
+ctdb_nodes_restart "$test_node"
echo "Will use PID file ${pidfile} to check for ctdbd exit"
wait_until 30 ! test -f "$pidfile"
echo "GOOD: ctdbd exited early on node ${test_node}"
@@ -56,7 +56,7 @@ export CTDB_TEST_SAMBA_VERSION=$(( (major << 16) | (minor + 1) ))
printf '\nRestarting node %d with CTDB_TEST_SAMBA_VERSION=0x%08x\n' \
"$test_node" \
"$CTDB_TEST_SAMBA_VERSION"
-start_ctdb_1 "$test_node"
+ctdb_nodes_start "$test_node"
echo "Will use PID file ${pidfile} to check for ctdbd exit"
wait_until 30 ! test -f "$pidfile"
echo "GOOD: ctdbd exited early on node ${test_node}"
diff --git a/ctdb/tests/local_daemons.sh b/ctdb/tests/local_daemons.sh
index e9f9423cb0c..a67055a9337 100755
--- a/ctdb/tests/local_daemons.sh
+++ b/ctdb/tests/local_daemons.sh
@@ -367,7 +367,10 @@ local_daemons_stop ()
onnode_common
- onnode -p "$_nodes" "${CTDB:-${VALGRIND:-} ctdb} shutdown"
+ onnode -p "$_nodes" \
+ "if [ -e \"\${CTDB_BASE}/run/ctdbd.pid\" ] ; then \
+ ${CTDB:-${VALGRIND:-} ctdb} shutdown ; \
+ fi"
}
local_daemons_onnode_usage ()
diff --git a/ctdb/tests/scripts/integration.bash b/ctdb/tests/scripts/integration.bash
index 51e9c7cb822..31f4387a404 100644
--- a/ctdb/tests/scripts/integration.bash
+++ b/ctdb/tests/scripts/integration.bash
@@ -50,7 +50,7 @@ ctdb_test_exit ()
unset ctdb_test_exit_hook
echo "Stopping cluster..."
- ctdb_stop_all
+ ctdb_nodes_stop || ctdb_test_error "Cluster shutdown failed"
exit $status
}
@@ -92,13 +92,13 @@ ctdb_test_init ()
{
trap "ctdb_test_exit" 0
- ctdb_stop_all >/dev/null 2>&1 || true
+ ctdb_nodes_stop >/dev/null 2>&1 || true
echo "Configuring cluster..."
- setup_ctdb "$@" || exit 1
+ setup_ctdb "$@" || ctdb_test_error "Cluster configuration failed"
echo "Starting cluster..."
- ctdb_init || exit 1
+ ctdb_init || ctdb_test_error "Cluster startup failed"
echo "*** SETUP COMPLETE AT $(date '+%F %T'), RUNNING TEST..."
}
@@ -111,6 +111,13 @@ ctdb_test_skip_on_cluster ()
fi
}
+
+ctdb_nodes_restart ()
+{
+ ctdb_nodes_stop "$@"
+ ctdb_nodes_start "$@"
+}
+
########################################
# Sets: $out, $outfile
@@ -568,9 +575,9 @@ wait_until_node_has_no_ips ()
ctdb_init ()
{
- ctdb_stop_all >/dev/null 2>&1 || :
+ ctdb_nodes_stop >/dev/null 2>&1 || :
- ctdb_start_all || ctdb_test_error "Cluster start failed"
+ ctdb_nodes_start || ctdb_test_error "Cluster start failed"
wait_until_ready || ctdb_test_error "Cluster didn't become ready"
diff --git a/ctdb/tests/scripts/integration_local_daemons.bash b/ctdb/tests/scripts/integration_local_daemons.bash
index 9850ad2208c..643fc5ef846 100644
--- a/ctdb/tests/scripts/integration_local_daemons.bash
+++ b/ctdb/tests/scripts/integration_local_daemons.bash
@@ -45,39 +45,42 @@ setup_ctdb ()
fi
}
-start_ctdb_1 ()
+ctdb_nodes_start ()
{
- local pnn="$1"
+ local nodespec="${1:-all}"
- $ctdb_local_daemons start "$pnn"
+ $ctdb_local_daemons start "$nodespec"
}
-ctdb_start_all ()
+ctdb_nodes_stop ()
{
- $ctdb_local_daemons start "all"
-}
+ local nodespec="${1:-all}"
-stop_ctdb_1 ()
-{
- local pnn="$1"
+ if $ctdb_local_daemons stop "$nodespec" ; then
+ return 0
+ fi
- $ctdb_local_daemons stop "$pnn"
-}
+ # Failed, dump logs?
+ if $CTDB_TEST_PRINT_LOGS_ON_ERROR ; then
+ _print_logs
+ fi
-ctdb_stop_all ()
-{
- $ctdb_local_daemons stop "all"
+ # Next level up can log the error...
+ return 1
}
-restart_ctdb_1 ()
+onnode ()
{
- stop_ctdb_1 "$1"
- start_ctdb_1 "$1"
+ $ctdb_local_daemons onnode "$@"
}
-onnode ()
+
+
+_print_logs ()
{
- $ctdb_local_daemons onnode "$@"
+ echo "*** LOG START --------------------"
+ $ctdb_local_daemons print-log all | tail -n 500
+ echo "*** LOG END --------------------"
}
_print_logs_on_test_failure ()
@@ -88,7 +91,5 @@ _print_logs_on_test_failure ()
return
fi
- echo "*** LOG START --------------------"
- $ctdb_local_daemons print-log all | tail -n 500
- echo "*** LOG END --------------------"
+ _print_logs
}
diff --git a/ctdb/tests/scripts/integration_real_cluster.bash b/ctdb/tests/scripts/integration_real_cluster.bash
index 455f1431b98..8d3f68a0b2c 100644
--- a/ctdb/tests/scripts/integration_real_cluster.bash
+++ b/ctdb/tests/scripts/integration_real_cluster.bash
@@ -39,26 +39,15 @@ _service_ctdb ()
}
# Stop/start CTDB on all nodes. Override for local daemons.
-ctdb_stop_all ()
+ctdb_nodes_stop ()
{
- onnode -p all "$CTDB_TEST_WRAPPER" _service_ctdb stop
-}
-ctdb_start_all ()
-{
- onnode -p all "$CTDB_TEST_WRAPPER" _service_ctdb start
-}
+ local nodespec="${1:-all}"
-start_ctdb_1 ()
-{
- onnode "$1" "$CTDB_TEST_WRAPPER" _service_ctdb start
+ onnode -p "$nodespec" "$CTDB_TEST_WRAPPER" _service_ctdb stop
}
-
-stop_ctdb_1 ()
+ctdb_nodes_start ()
{
- onnode "$1" "$CTDB_TEST_WRAPPER" _service_ctdb stop
-}
+ local nodespec="${1:-all}"
-restart_ctdb_1 ()
-{
- onnode "$1" "$CTDB_TEST_WRAPPER" _service_ctdb restart
+ onnode -p "$nodespec" "$CTDB_TEST_WRAPPER" _service_ctdb start
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list