]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-scripts: Move current lock debugging to a function
authorMartin Schwenke <martin@meltin.net>
Fri, 12 Feb 2021 08:07:55 +0000 (19:07 +1100)
committerAmitay Isaacs <amitay@samba.org>
Fri, 28 May 2021 06:46:29 +0000 (06:46 +0000)
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/config/debug_locks.sh

index 7c5fd50d8aacc6bd24aa987aa589d91dded2898e..d83f3bb368e968ead08c6ba1b0e6f247f13e75cd 100755 (executable)
@@ -64,11 +64,8 @@ dump_stacks ()
        done
 }
 
-(
-    flock -n 9 || exit 1
-
-    echo "===== Start of debug locks PID=$$ ====="
-
+debug_via_proc_locks ()
+{
     # Create sed expression to convert inodes to names.
     # Filenames don't contain dashes and we want basenames
     # shellcheck disable=SC2035
@@ -99,10 +96,22 @@ dump_stacks ()
            all_pids="$all_pids $pids"
        done
 
-       dump_stacks "$all_pids"
+       lock_holder_pids="${lock_holder_pids:+${lock_holder_pids} }${all_pids}"
     fi
+}
+
+(
+       flock -n 9 || exit 1
+
+       echo "===== Start of debug locks PID=$$ ====="
+
+       lock_holder_pids=""
+
+       debug_via_proc_locks
+
+       dump_stacks "$lock_holder_pids"
 
-    echo "===== End of debug locks PID=$$ ====="
+       echo "===== End of debug locks PID=$$ ====="
 )9>"${CTDB_SCRIPT_VARDIR}/debug_locks.lock" | script_log "ctdbd-lock"
 
 exit 0