[SCM] Samba Shared Repository - branch master updated
Volker Lendecke
vlendec at samba.org
Thu Oct 13 16:14:03 UTC 2016
The branch, master has been updated
via caff670 libcli: Remove code clone
via b89de21 ctdb-tests: Add a missing assert()
via 5e4381d ctdb-tests: Use bash locals for readability
via b832049 ctdb-scripts: Drop backward compatibility from ctdbd_is_running()
via 56d526c ctdb-scripts: ctdbd_wrapper should never remove the PID file
from d7214a8 spoolss: Fix caching of printername->sharename
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit caff67082a22b4b5250eb73b09e57bb9ab99c346
Author: Moritz Beller <moritzbeller at gmx.de>
Date: Tue Oct 11 15:39:55 2016 +0200
libcli: Remove code clone
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12373
Signed-off-by: Moritz Beller <moritzbeller at gmx.de>
Reviewed-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Simo <simo at samba.org>
Autobuild-User(master): Volker Lendecke <vl at samba.org>
Autobuild-Date(master): Thu Oct 13 18:13:45 CEST 2016 on sn-devel-144
commit b89de21ac365100cd8ea0ff466fcb6aa352df4df
Author: Martin Schwenke <martin at meltin.net>
Date: Wed Oct 12 18:36:51 2016 +1100
ctdb-tests: Add a missing assert()
Signed-off-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Volker Lendecke <vl at samba.org>
commit 5e4381d32302830695f7fb0384d2e433eaf0d6a3
Author: Martin Schwenke <martin at meltin.net>
Date: Tue Oct 11 13:32:31 2016 +1100
ctdb-tests: Use bash locals for readability
This is a bash script so use bash feature instead of using the leading
underscore convention for locals.
Signed-off-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Volker Lendecke <vl at samba.org>
commit b832049116e1446e44571d63cde9d88a56f017fa
Author: Martin Schwenke <martin at meltin.net>
Date: Mon Oct 10 14:48:28 2016 +1100
ctdb-scripts: Drop backward compatibility from ctdbd_is_running()
The PID file has been used since CTDB 2.3. Assume that anyone
upgrading from an older version does a clean shutdown, upgrades CTDB
and then does a clean start (as opposed to upgrade CTDB and then
restart).
Signed-off-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Volker Lendecke <vl at samba.org>
commit 56d526c6ea3150a19dd0762b45d23a7c5f96d260
Author: Martin Schwenke <martin at meltin.net>
Date: Mon Oct 10 13:16:01 2016 +1100
ctdb-scripts: ctdbd_wrapper should never remove the PID file
kill_ctdbd() kills the daemon and then removes the PID file. This is
racy because a new daemon could write a new PID file in between the
kill and the removal. Reversing these steps would be an improvement.
However, none of the places where kill_ctdbd() is called is a safe
place to remove the PID file. There is always a chance that a new
daemon could start, write a new PID file and then kill_ctdbd() could
remove the new PID file.
ctdbd is able to overwrite a stale PID file by checking to see if it
is locked.
Therefore, entirely drop removal of the PID file from ctdbd_wrapper.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12287
Signed-off-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Volker Lendecke <vl at samba.org>
-----------------------------------------------------------------------
Summary of changes:
ctdb/config/ctdbd_wrapper | 50 ++++++++-----------------------------------
ctdb/tests/run_tests.sh | 46 ++++++++++++++++++++-------------------
ctdb/tests/src/pidfile_test.c | 1 +
libcli/security/sddl.c | 2 +-
4 files changed, 35 insertions(+), 64 deletions(-)
Changeset truncated at 500 lines:
diff --git a/ctdb/config/ctdbd_wrapper b/ctdb/config/ctdbd_wrapper
index cdf0304..11ea59a 100755
--- a/ctdb/config/ctdbd_wrapper
+++ b/ctdb/config/ctdbd_wrapper
@@ -30,53 +30,22 @@ ctdbd="${CTDBD:-/usr/local/sbin/ctdbd}"
# ctdbd_is_running()
-# 1. Check if ctdbd is running.
-# - If the PID file is being used then, if the PID file is present,
-# ctdbd is only considered to running if the PID in the file is
-# active.
-# - If the PID file is not being used (i.e. we're upgrading from a
-# version that doesn't support it) then the presence of any ctdbd
-# processes is enough proof.
-
-# 2. Print a comma-separated list of PIDs that can be
-# used with "pkill -s".
-# - If the PID file is being used then this is just the PID in that
-# file. This also happens to be the session ID, so can be used
-# to kill all CTDB processes.
-# - If the PID file is not being used (i.e. upgrading) then this is
-# just any ctdbd processes that are running. Hopefully one of
-# them is the session ID so that it can be used to kill all CTDB
-# processes.
-
-# Combining these 2 checks is an optimisation to avoid potentially
-# running too many pgrep/pkill processes on an already loaded system.
-# Trawling through /proc/ can be very expensive.
+# Check if ctdbd is running. ctdbd is only considered to running if
+# the PID in the PID file is active. Return true if this is the case.
+# Print the PID regardless, since it can be used to kill stale
+# processes in the session.
ctdbd_is_running ()
{
- # If the directory for the PID file exists then respect the
- # existence of a PID file.
- _pidfile_dir=$(dirname "$pidfile")
- if [ -d "$_pidfile_dir" ] ; then
if read _pid 2>/dev/null <"$pidfile" ; then
- echo "$_pid"
+ echo "$_pid"
- # Return value of kill is used
- kill -0 "$_pid" 2>/dev/null
+ # Return value of kill is used
+ kill -0 "$_pid" 2>/dev/null
else
- # Missing/empty PID file
- return 1
- fi
- else
- if _pid=$(pgrep -f "${ctdbd}\>") ; then
- # Use word splitting to squash whitespace
- # shellcheck disable=SC2086
- echo $_pid | sed -e 's@ @, at g'
- return 0
- else
- return 1
+ # Missing/empty PID file
+ return 1
fi
- fi
}
############################################################
@@ -185,7 +154,6 @@ kill_ctdbd ()
if [ -n "$_session" ] ; then
pkill -9 -s "$_session" 2>/dev/null
- rm -f "$pidfile"
fi
}
diff --git a/ctdb/tests/run_tests.sh b/ctdb/tests/run_tests.sh
index a7823dc..fcb4688 100755
--- a/ctdb/tests/run_tests.sh
+++ b/ctdb/tests/run_tests.sh
@@ -155,20 +155,20 @@ if ! which mktemp >/dev/null 2>&1 ; then
# Not perfect, but it will do...
mktemp ()
{
- _dir=false
+ local dir=false
if [ "$1" = "-d" ] ; then
- _dir=true
+ dir=true
fi
- _t="${TMPDIR:-/tmp}/tmp.$$.$RANDOM"
+ local t="${TMPDIR:-/tmp}/tmp.$$.$RANDOM"
(
umask 077
- if $_dir ; then
- mkdir "$_t"
+ if $dir ; then
+ mkdir "$t"
else
- >"$_t"
+ >"$t"
fi
)
- echo "$_t"
+ echo "$t"
}
fi
@@ -179,12 +179,12 @@ set -o pipefail
run_one_test ()
{
- _f="$1"
+ local f="$1"
- [ -x "$_f" ] || die "test \"$_f\" is not executable"
+ [ -x "$f" ] || die "test \"$f\" is not executable"
tests_total=$(($tests_total + 1))
- ctdb_test_run "$_f" | tee "$tf" | show_progress
+ ctdb_test_run "$f" | tee "$tf" | show_progress
status=$?
if [ $status -eq 0 ] ; then
tests_passed=$(($tests_passed + 1))
@@ -192,37 +192,39 @@ run_one_test ()
tests_failed=$(($tests_failed + 1))
fi
if $with_summary ; then
+ local t
if [ $status -eq 0 ] ; then
- _t=" PASSED "
+ t=" PASSED "
else
- _t="*FAILED*"
+ t="*FAILED*"
fi
if $with_desc ; then
desc=$(tail -n +4 $tf | head -n 1)
- _f="$desc"
+ f="$desc"
fi
- echo "$_t $_f" >>"$sf"
+ echo "$t $f" >>"$sf"
fi
}
find_and_run_one_test ()
{
- _t="$1"
- _dir="$2"
+ local t="$1"
+ local dir="$2"
- _f="${_dir}${_dir:+/}${_t}"
+ local f="${dir}${dir:+/}${t}"
- if [ -d "$_f" ] ; then
- for _i in $(ls "${_f%/}/"*".sh" 2>/dev/null) ; do
- run_one_test "$_i"
+ if [ -d "$f" ] ; then
+ local i
+ for i in $(ls "${f%/}/"*".sh" 2>/dev/null) ; do
+ run_one_test "$i"
if $exit_on_fail && [ $status -ne 0 ] ; then
break
fi
done
# No tests found? Not a tests directory! Not found...
[ -n "$status" ] || status=127
- elif [ -f "$_f" ] ; then
- run_one_test "$_f"
+ elif [ -f "$f" ] ; then
+ run_one_test "$f"
else
status=127
fi
diff --git a/ctdb/tests/src/pidfile_test.c b/ctdb/tests/src/pidfile_test.c
index ad8bf14..00b64ca 100644
--- a/ctdb/tests/src/pidfile_test.c
+++ b/ctdb/tests/src/pidfile_test.c
@@ -43,6 +43,7 @@ static void test1(const char *pidfile)
assert(S_ISREG(st.st_mode));
fp = fopen(pidfile, "r");
+ assert(fp != NULL);
ret = fscanf(fp, "%d", &pid);
assert(ret == 1);
assert(pid == getpid());
diff --git a/libcli/security/sddl.c b/libcli/security/sddl.c
index 47e5934..9a5a250 100644
--- a/libcli/security/sddl.c
+++ b/libcli/security/sddl.c
@@ -529,7 +529,7 @@ static char *sddl_encode_ace(TALLOC_CTX *mem_ctx, const struct security_ace *ace
if (ace->type == SEC_ACE_TYPE_ACCESS_ALLOWED_OBJECT ||
ace->type == SEC_ACE_TYPE_ACCESS_DENIED_OBJECT ||
ace->type == SEC_ACE_TYPE_SYSTEM_AUDIT_OBJECT ||
- ace->type == SEC_ACE_TYPE_SYSTEM_AUDIT_OBJECT) {
+ ace->type == SEC_ACE_TYPE_SYSTEM_ALARM_OBJECT) {
if (ace->object.object.flags & SEC_ACE_OBJECT_TYPE_PRESENT) {
sddl_object = GUID_string(
tmp_ctx, &ace->object.object.type.type);
--
Samba Shared Repository
More information about the samba-cvs
mailing list