From f7cf8132b007aadc861efcb26060c075c45978b5 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Wed, 6 Jan 2021 21:38:31 +1100 Subject: [PATCH] ctdb-tests: Add debug_locks.sh tests for mutexes Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs Autobuild-User(master): Amitay Isaacs Autobuild-Date(master): Fri May 28 07:34:23 UTC 2021 on sn-devel-184 --- .../UNIT/eventscripts/debug_locks.sh.021.sh | 9 +++ .../UNIT/eventscripts/debug_locks.sh.022.sh | 9 +++ .../UNIT/eventscripts/debug_locks.sh.023.sh | 9 +++ .../UNIT/eventscripts/debug_locks.sh.024.sh | 9 +++ .../UNIT/eventscripts/debug_locks.sh.025.sh | 9 +++ .../UNIT/eventscripts/debug_locks.sh.026.sh | 9 +++ .../UNIT/eventscripts/debug_locks.sh.027.sh | 9 +++ .../UNIT/eventscripts/debug_locks.sh.028.sh | 9 +++ .../UNIT/eventscripts/scripts/debug_locks.sh | 65 +++++++++++++++---- .../UNIT/eventscripts/stubs/tdb_mutex_check | 10 +++ 10 files changed, 133 insertions(+), 14 deletions(-) create mode 100755 ctdb/tests/UNIT/eventscripts/debug_locks.sh.021.sh create mode 100755 ctdb/tests/UNIT/eventscripts/debug_locks.sh.022.sh create mode 100755 ctdb/tests/UNIT/eventscripts/debug_locks.sh.023.sh create mode 100755 ctdb/tests/UNIT/eventscripts/debug_locks.sh.024.sh create mode 100755 ctdb/tests/UNIT/eventscripts/debug_locks.sh.025.sh create mode 100755 ctdb/tests/UNIT/eventscripts/debug_locks.sh.026.sh create mode 100755 ctdb/tests/UNIT/eventscripts/debug_locks.sh.027.sh create mode 100755 ctdb/tests/UNIT/eventscripts/debug_locks.sh.028.sh create mode 100755 ctdb/tests/UNIT/eventscripts/stubs/tdb_mutex_check diff --git a/ctdb/tests/UNIT/eventscripts/debug_locks.sh.021.sh b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.021.sh new file mode 100755 index 00000000000..f324803ac50 --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.021.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "DB S+ DB MUTEX" + +setup + +do_test "DB" "S+" "DB" "MUTEX" diff --git a/ctdb/tests/UNIT/eventscripts/debug_locks.sh.022.sh b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.022.sh new file mode 100755 index 00000000000..0e7077119e6 --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.022.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "DB D. DB MUTEX" + +setup + +do_test "DB" "D." "DB" "MUTEX" diff --git a/ctdb/tests/UNIT/eventscripts/debug_locks.sh.023.sh b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.023.sh new file mode 100755 index 00000000000..de84c81cec7 --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.023.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "RECORD S+ DB MUTEX" + +setup + +do_test "RECORD" "S+" "DB" "MUTEX" diff --git a/ctdb/tests/UNIT/eventscripts/debug_locks.sh.024.sh b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.024.sh new file mode 100755 index 00000000000..30ad6bdaf33 --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.024.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "RECORD D. DB MUTEX" + +setup + +do_test "RECORD" "D." "DB" "MUTEX" diff --git a/ctdb/tests/UNIT/eventscripts/debug_locks.sh.025.sh b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.025.sh new file mode 100755 index 00000000000..f259db5fa30 --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.025.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "DB S+ RECORD MUTEX" + +setup + +do_test "DB" "S+" "RECORD" "MUTEX" diff --git a/ctdb/tests/UNIT/eventscripts/debug_locks.sh.026.sh b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.026.sh new file mode 100755 index 00000000000..9e057afeff4 --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.026.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "DB D. RECORD MUTEX" + +setup + +do_test "DB" "D." "RECORD" "MUTEX" diff --git a/ctdb/tests/UNIT/eventscripts/debug_locks.sh.027.sh b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.027.sh new file mode 100755 index 00000000000..d70e7b7b1af --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.027.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "RECORD S+ RECORD MUTEX" + +setup + +do_test "RECORD" "S+" "RECORD" "MUTEX" diff --git a/ctdb/tests/UNIT/eventscripts/debug_locks.sh.028.sh b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.028.sh new file mode 100755 index 00000000000..7199035287b --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/debug_locks.sh.028.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "RECORD D. RECORD MUTEX" + +setup + +do_test "RECORD" "D." "RECORD" "MUTEX" diff --git a/ctdb/tests/UNIT/eventscripts/scripts/debug_locks.sh b/ctdb/tests/UNIT/eventscripts/scripts/debug_locks.sh index 162dc21b2ac..c303c60f777 100644 --- a/ctdb/tests/UNIT/eventscripts/scripts/debug_locks.sh +++ b/ctdb/tests/UNIT/eventscripts/scripts/debug_locks.sh @@ -52,6 +52,7 @@ do_test () _holder_scope="$1" _holder_state="$2" _helper_scope="$3" + _lock_type="${4:-FCNTL}" _lock_helper_pid="4132032" @@ -98,16 +99,24 @@ EOF _holder_lock="" if [ "$_holder_scope" = "DB" ] ; then - _holder_lock=$(cat < POSIX ADVISORY WRITE ${_lock_helper_pid} ${_locking_tdb_id} 168 170 EOF ) - elif [ "$_helper_scope" = "RECORD" ] ; then + elif [ "$_helper_scope" = "RECORD" ] && \ + [ "$_lock_type" = "FCNTL" ] ; then _helper_lock=$(cat < POSIX ADVISORY WRITE ${_lock_helper_pid} ${_locking_tdb_id} 112736 112736 EOF @@ -140,7 +151,8 @@ $_t POSIX ADVISORY READ 4131931 ${_locking_tdb_id} 4 4 EOF ) - elif [ "$_holder_scope" = "RECORD" ] ; then + elif [ "$_holder_scope" = "RECORD" ] && \ + [ "$_lock_type" = "FCNTL" ] ; then _t=$(cat <