1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00
samba-mirror/ctdb/config
Martin Schwenke 238056e5aa ctdb-scripts: Avoid using testparm to process its own output
When testparm processes the output of "testparm -v" (which includes
default values) it appears to do global checks (or some other sort of
initialisation logic) for all specified values.  This includes a DNS
lookup for the node's hostname, as a side-effect of a libldap
ldap_set_option() call when processing "ldap debug level".  If DNS
servers are down then this can induce timeouts, possibly resulting in
monitor timeouts.

Avoid this by using sed to extract configuration values from the
testparm cache file.

This is already shown to work when retrieving share paths, where
testparm is basically used as cat.  Update the sed pattern to avoid
matching empty values on the right-hand side of the equals ('=') -
this avoids the default empty path value (and "smb ports" never has an
empty value).

Corresponding test changes:

* 50.samba.monitor.111.sh no longer expects a failure from being
  unable to set smb ports, since testparm is no longer used in that
  code path.

* smb ports needs to be set in fake smb.conf so it is in the default
  output and can be extracted using sed.

* Although testparm --parameter-name is no longer used in
  50.samba.script, update the stub implementation (in case it is ever
  used again) to extract from fake smb.conf, since "smb ports" is now
  set there.  The change from $parameter to $param allows a long line
  to stay below 80 columns.

Signed-off-by: Martin Schwenke <mschwenke@ddn.com>
Reviewed-by: Volker Lendecke <vl@samba.org>

Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Tue Feb 14 08:43:53 UTC 2023 on atb-devel-224
2023-02-14 08:43:53 +00:00
..
events ctdb-scripts: Avoid using testparm to process its own output 2023-02-14 08:43:53 +00:00
nfs-checks.d ctdb-scripts: Stop/start mount/rquotad/status via NFS call-out 2019-03-31 10:45:20 +00:00
ctdb-crash-cleanup.sh ctdb-scripts: Avoid ShellCheck warning SC2164 2022-07-22 06:38:32 +00:00
ctdb.conf ctdb-config: [cluster] recovery lock -> [cluster] cluster lock 2022-01-17 10:21:33 +00:00
ctdb.init ctdb-scripts: Drop uses of ctdbd_wrapper 2022-04-06 06:34:37 +00:00
ctdb.sudoers ctdb-scripts: Update important installed files to use build-time defaults 2015-09-15 08:56:21 +02:00
ctdb.sysconfig ctdb-config: Drop CTDB_STARTUP_TIMEOUT 2022-04-06 06:34:37 +00:00
ctdb.tunables ctdb-scripts: Tunables are now loaded from ctdb.tunables 2018-03-28 02:57:21 +02:00
debug_locks.sh ctdb-scripts: Avoid ShellCheck warning SC2164 2022-07-22 06:38:32 +00:00
debug-hung-script.sh ctdb-scripts: Avoid ShellCheck warning SC2164 2022-07-22 06:38:32 +00:00
functions ctdb-scripts: Add debugging variable CTDB_KILLTCP_DEBUGLEVEL 2022-09-20 11:42:16 +00:00
nfs-linux-kernel-callout ctdb-scripts: Avoid ShellCheck warning SC2162 2022-06-24 09:49:33 +00:00
notification.README ctdb-scripts: Change directory for notifications to events/notification 2018-06-05 17:47:26 +02:00
notify.sh ctdb-scripts: Change directory for notifications to events/notification 2018-06-05 17:47:26 +02:00
README ctdb-scripts: Move event scripts to events/legacy/ directory 2018-06-05 17:47:26 +02:00
script.options ctdb-scripts: Drop event script CTDB_MANAGED_<service> variables 2018-07-11 11:48:39 +02:00
statd-callout ctdb-scripts: Use "git config" as last resort to parse nfs.conf 2022-07-22 16:09:31 +00:00

This directory contains run-time support scripts for CTDB.

Selected highlights:

  ctdb.init

    An initscript for starting ctdbd at boot time.

  events/

    Eventscripts.  See events/README for more details.

  functions

    Support functions, sourced by eventscripts and other scripts.

  statd-callout

    rpc.statd high-availability callout to support lock migration on
    failover.

Notes:

* All of these scripts are written in POSIX Bourne shell.  Please
  avoid bash-isms, including the use of "local" variables (which are
  not available in POSIX shell).

* Do not use absolute paths for commands.  Unit tests attempt to
  replace many commands with stubs and can not do this if commands are
  specified with absolute paths.  The functions file controls $PATH so
  absolute paths should not be required.