[SCM] Samba Shared Repository - branch v4-9-stable updated
Karolin Seeger
kseeger at samba.org
Fri Aug 31 09:51:05 UTC 2018
The branch, v4-9-stable has been updated
via 8fd169a VERSION: Disable GIT_SNAPSHOT for the 4.9.0rc4 release.
via 46aedae WHATSNEW: Add changes since RC3.
via 927c199 WHATSNEW: More CTDB updates for 4.9
via e67b397 ctdb-tests: Check that no IPs are assigned when failover is disabled
via 6620173 ctdb-tests: Add an extra conf loading test case
via 512149a ctdb-doc: Switch tunable DisableIPFailover to a config option
via 79a3bef ctdb-config: Switch tunable DisableIPFailover to a config option
via 83b79f5 ctdb-config: Integrate failover options into conf-tool
via f518865 ctdb-failover: Add failover configuration options
via 4a30fb0 ctdb-tests: Drop DisableIPFailover simple test
via 089d3b9 ctdb-daemon: Pass DisableIPFailover tunable via environment variable
via 624b4d1 ctdb-common: Allow boolean configuration values to have yes/no values
via 5567445 ctdb-doc: Switch tunable TDBMutexEnabled to a config option
via 75261d6 ctdb-config: Switch tunable TDBMutexEnabled to a config option
via 5f346ce ctdb-doc: Add support for migrating tunables to ctdb.conf options
via 73c884c ctdb-doc: Change option "no realtime" option to "realtime scheduling"
via d51434b ctdb-config: Change option "no realtime" option to "realtime scheduling"
via 34b4bdc ctdb-doc: Handle boolean options in config migration more carefully
via 97048c0 ctdb-doc: Make config migration script notice removed CTDB_BASE option
via 7e38e95 ctdb-common: Fix aliasing issue in IPv6 checksum
via 3fd839a s3: smbd: Ensure get_real_filename() copes with empty pathnames.
via 729ac56 torture: Demonstrate the invalid lock order panic
via 2f93246 vfs_fruit: Fix a leak of "br_lck"
via 018550f python: Fix print in dns_invalid.py
via ccbc9c1 wafsamba/samba_abi: always hide ABI symbols which must be local
via a89ec4e selftest: Load time_audit and full_audit modules for all tests
via b0e1a03 s3: vfs: time_audit: fix handling of token_blob in smb_time_audit_offload_read_recv()
via 96a74ab s3:libads: Free addr before we free the context
via 14eed16 s3:winbind: Fix memory leak in nss_init()
via bd0b693 s3:registry: Fix possible memory leak in _reg_perfcount_multi_sz_from_tdb()
via 8f65578 s3:libads: Fix memory leaks in ads_krb5_chg_password()
via f1c2e68 s3:client: Avoid a possible fd leak in do_get()
via 98e7021 s4:lib: Fix a possible fd leak in gp_get_file()
via 6ffa700 s3:utils: Do not leak memory in new_user()
via cdb6f01 s3:utils: Do not overflow the destination buffer in net_idmap_restore()
via 1000cbe s3:passdb: Don't leak memory on error in fetch_ldap_pw()
via 2431f54 wbinfo: Free memory when we leave wbinfo_dsgetdcname()
via 12a8f20 netcmd: Fix --kerberos=yes and --no-secrets domain backups
via b9315fa netcmd: Delete unnecessary function
via 15e1a41 netcmd: Fix kerberos option for domain backups
via 69583d1 netcmd: domain backup didn't support prompting for password
via ec47551 netcmd: Improve domain backup targetdir checks
via 6244e6a VERSION: Bump version up to 4.9.0rc4...
from ba2ef7f VERISON: Disable GIT_SNAPSHOT for 4.9.0rc3 release.
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-9-stable
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
VERSION | 2 +-
WHATSNEW.txt | 58 +++++++++++-
buildtools/wafsamba/samba_abi.py | 10 +-
buildtools/wafsamba/tests/test_abi.py | 14 +++
ctdb/common/conf.c | 4 +-
ctdb/common/conf_tool.c | 2 +
ctdb/common/system_socket.c | 12 ++-
ctdb/common/tunable.c | 4 +-
ctdb/database/database_conf.c | 21 +++++
ctdb/database/database_conf.h | 3 +-
ctdb/doc/ctdb-tunables.7.xml | 28 ------
ctdb/doc/ctdb.1.xml | 2 -
ctdb/doc/ctdb.conf.5.xml | 52 ++++++++++-
ctdb/doc/examples/config_migrate.sh | 104 +++++++++++++++------
ctdb/doc/examples/config_migrate.test_input | 7 +-
.../database_conf.h => failover/failover_conf.c} | 43 ++++++---
.../event_conf.h => failover/failover_conf.h} | 16 ++--
ctdb/server/ctdb_config.c | 18 +++-
ctdb/server/ctdb_config.h | 6 +-
ctdb/server/ctdb_ltdb_server.c | 7 +-
ctdb/server/ctdb_recoverd.c | 14 ++-
ctdb/server/ctdb_takeover.c | 10 +-
ctdb/server/ctdb_takeover_helper.c | 4 +-
ctdb/server/ctdbd.c | 2 +-
ctdb/server/legacy_conf.c | 4 +-
ctdb/server/legacy_conf.h | 2 +-
ctdb/tests/cunit/config_test_001.sh | 25 ++++-
ctdb/tests/cunit/config_test_006.sh | 4 +-
ctdb/tests/cunit/config_test_007.sh | 24 +++++
ctdb/tests/eventscripts/00.ctdb.setup.002.sh | 2 -
ctdb/tests/eventscripts/scripts/00.ctdb.sh | 1 -
ctdb/tests/simple/19_ip_takeover_noop.sh | 36 ++++---
ctdb/tests/simple/scripts/local_daemons.bash | 5 +
ctdb/tests/takeover_helper/016.sh | 4 +-
ctdb/tests/tool/ctdb.listvars.001.sh | 2 -
ctdb/wscript | 6 ++
nsswitch/wbinfo.c | 3 +
python/samba/netcmd/domain_backup.py | 56 ++++++-----
python/samba/tests/dns_invalid.py | 2 +-
selftest/target/Samba3.pm | 12 +--
source3/client/client.c | 7 ++
source3/libads/krb5_setpw.c | 2 +
source3/modules/vfs_fruit.c | 24 +++--
source3/modules/vfs_time_audit.c | 12 +--
source3/passdb/secrets.c | 4 +
source3/registry/reg_perfcount.c | 15 ++-
source3/smbd/filename.c | 5 +
source3/utils/net_idmap.c | 4 +-
source3/utils/pdbedit.c | 10 +-
source3/winbindd/nss_info.c | 26 ++++--
source4/lib/policy/gp_filesys.c | 24 +++--
source4/torture/vfs/fruit.c | 89 ++++++++++++++++++
52 files changed, 640 insertions(+), 213 deletions(-)
copy ctdb/{database/database_conf.h => failover/failover_conf.c} (53%)
copy ctdb/{event/event_conf.h => failover/failover_conf.h} (68%)
create mode 100755 ctdb/tests/cunit/config_test_007.sh
Changeset truncated at 500 lines:
diff --git a/VERSION b/VERSION
index 3bb84e7..1860df5 100644
--- a/VERSION
+++ b/VERSION
@@ -87,7 +87,7 @@ SAMBA_VERSION_PRE_RELEASE=
# e.g. SAMBA_VERSION_RC_RELEASE=1 #
# -> "3.0.0rc1" #
########################################################
-SAMBA_VERSION_RC_RELEASE=3
+SAMBA_VERSION_RC_RELEASE=4
########################################################
# To mark SVN snapshots this should be set to 'yes' #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 97cd50b..e6194aa 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,7 +1,7 @@
Release Announcements
=====================
-This is the third release candidate of Samba 4.9. This is *not*
+This is the fourth release candidate of Samba 4.9. This is *not*
intended for production environments and is designed for testing
purposes only. Please report any defects via the Samba bug reporting
system at https://bugzilla.samba.org/.
@@ -319,6 +319,26 @@ There are many changes to CTDB in this release.
When writing tests there are still mechanisms available to change
the locations of certain directories and files.
+* The following ctdbd.conf and ctdbd options have been replaced by new
+ ctdb.conf options:
+
+ CTDB_LOGGING/--logging logging -> location
+ CTDB_DEBUGLEVEL/-d logging -> log level
+ CTDB_TRANSPORT/--transport cluster -> transport
+ CTDB_NODE_ADDRESS/--listen cluster -> node address
+ CTDB_RECOVERY_LOCK/--reclock cluster -> recovery lock
+ CTDB_DBDIR/--dbdir database -> volatile database directory
+ CTDB_DBDIR_PERSISTENT/--dbdir-persistent database -> peristent database directory
+ CTDB_DBDIR_STATE/--dbdir-state database -> state database directory
+ CTDB_DEBUG_LOCKS database -> lock debug script
+ CTDB_DEBUG_HUNG_SCRIPT event -> debug script
+ CTDB_NOSETSCHED/--nosetsched legacy -> realtime scheduling
+ CTDB_CAPABILITY_RECMASTER/--no-recmaster legacy -> recmaster capability
+ CTDB_CAPABILITY_LMASTER/--no-lmaster legacy -> lmaster capability
+ CTDB_START_AS_STOPPED/--start-as-stopped legacy -> start as stopped
+ CTDB_START_AS_DISABLED/--start-as-disabled legacy -> start as disabled
+ CTDB_SCRIPT_LOG_LEVEL/--script-log-level legacy -> script log level
+
* Event scripts have moved to the scripts/legacy subdirectory of the
configuration directory
@@ -370,6 +390,11 @@ There are many changes to CTDB in this release.
manually mounted on the directory pointed to by the "volatile
database directory" option. See ctdb.conf(5) for more details.
+* The following tunable options are now ctdb.conf options:
+
+ DisabledIPFailover failover -> disabled
+ TDBMutexEnabled database -> tdb mutexes
+
* Support for the NoIPHostOnAllDisabled tunable has been removed
If all nodes are unhealthy or disabled then CTDB will not host
@@ -451,6 +476,37 @@ Any external VFS modules will need to be updated to match these
changes in order to work with 4.9.x.
+CHANGES SINCE 4.9.0rc3
+======================
+
+o Jeremy Allison <jra at samba.org>
+ * BUG 13585: s3: smbd: Ensure get_real_filename() copes with empty
+ pathnames.
+
+o Tim Beale <timbeale at catalyst.net.nz>
+ * BUG 13566: samba domain backup online/rename commands force user to specify
+ password on CLI.
+
+o Alexander Bokovoy <ab at samba.org>
+ * BUG 13579: wafsamba/samba_abi: Always hide ABI symbols which must be
+ local.
+
+o Volker Lendecke <vl at samba.org>
+ * BUG 13584: Fix a panic if fruit_access_check detects a locking conflict.
+
+o Andreas Schneider <asn at samba.org>
+ * BUG 13567: Fix memory and resource leaks.
+ * BUG 13580: python: Fix print in dns_invalid.py.
+
+o Martin Schwenke <martin at meltin.net>
+ * BUG 13588: Aliasing issue causes incorrect IPv6 checksum.
+ * BUG 13589: Fix CTDB configuration issues.
+
+o Ralph Wuerthner <ralph.wuerthner at de.ibm.com>
+ * BUG 13568: s3: vfs: time_audit: fix handling of token_blob in
+ smb_time_audit_offload_read_recv().
+
+
CHANGES SINCE 4.9.0rc2
======================
diff --git a/buildtools/wafsamba/samba_abi.py b/buildtools/wafsamba/samba_abi.py
index 196b468..4603e76 100644
--- a/buildtools/wafsamba/samba_abi.py
+++ b/buildtools/wafsamba/samba_abi.py
@@ -192,10 +192,12 @@ def abi_write_vscript(f, libname, current_version, versions, symmap, abi_match):
f.write("\t\t%s;\n" % x)
else:
f.write("\t\t*;\n")
- if abi_match != ["*"]:
- f.write("\tlocal:\n")
- for x in local_abi:
- f.write("\t\t%s;\n" % x[1:])
+ # Always hide symbols that must be local if exist
+ local_abi.extend(["!_end", "!__bss_start", "!_edata"])
+ f.write("\tlocal:\n")
+ for x in local_abi:
+ f.write("\t\t%s;\n" % x[1:])
+ if global_abi != ["*"]:
if len(global_abi) > 0:
f.write("\t\t*;\n")
f.write("};\n")
diff --git a/buildtools/wafsamba/tests/test_abi.py b/buildtools/wafsamba/tests/test_abi.py
index bba78c1..7489214 100644
--- a/buildtools/wafsamba/tests/test_abi.py
+++ b/buildtools/wafsamba/tests/test_abi.py
@@ -66,6 +66,10 @@ class WriteVscriptTests(TestCase):
1.0 {
\tglobal:
\t\t*;
+\tlocal:
+\t\t_end;
+\t\t__bss_start;
+\t\t_edata;
};
""")
@@ -84,6 +88,10 @@ MYLIB_0.1 {
1.0 {
\tglobal:
\t\t*;
+\tlocal:
+\t\t_end;
+\t\t__bss_start;
+\t\t_edata;
};
""")
@@ -99,6 +107,9 @@ MYLIB_0.1 {
\t\t*;
\tlocal:
\t\texc_*;
+\t\t_end;
+\t\t__bss_start;
+\t\t_edata;
};
""")
@@ -115,6 +126,9 @@ MYLIB_0.1 {
\t\tpub_*;
\tlocal:
\t\texc_*;
+\t\t_end;
+\t\t__bss_start;
+\t\t_edata;
\t\t*;
};
""")
diff --git a/ctdb/common/conf.c b/ctdb/common/conf.c
index 74af7f8..669ac23 100644
--- a/ctdb/common/conf.c
+++ b/ctdb/common/conf.c
@@ -122,12 +122,12 @@ static int string_to_integer(const char *str, int *int_val)
static int string_to_boolean(const char *str, bool *bool_val)
{
- if (strcasecmp(str, "true") == 0) {
+ if (strcasecmp(str, "true") == 0 || strcasecmp(str, "yes") == 0) {
*bool_val = true;
return 0;
}
- if (strcasecmp(str, "false") == 0) {
+ if (strcasecmp(str, "false") == 0 || strcasecmp(str, "no") == 0) {
*bool_val = false;
return 0;
}
diff --git a/ctdb/common/conf_tool.c b/ctdb/common/conf_tool.c
index 329b204..e6020c5 100644
--- a/ctdb/common/conf_tool.c
+++ b/ctdb/common/conf_tool.c
@@ -32,6 +32,7 @@
#include "cluster/cluster_conf.h"
#include "database/database_conf.h"
#include "event/event_conf.h"
+#include "failover/failover_conf.h"
#include "server/legacy_conf.h"
#include "common/conf_tool.h"
@@ -243,6 +244,7 @@ int conf_tool_run(struct conf_tool_context *ctx, int *result)
cluster_conf_init(ctx->conf);
database_conf_init(ctx->conf);
event_conf_init(ctx->conf);
+ failover_conf_init(ctx->conf);
legacy_conf_init(ctx->conf);
if (! conf_valid(ctx->conf)) {
diff --git a/ctdb/common/system_socket.c b/ctdb/common/system_socket.c
index 62cc782..7528679 100644
--- a/ctdb/common/system_socket.c
+++ b/ctdb/common/system_socket.c
@@ -270,16 +270,20 @@ static uint16_t ip_checksum(uint16_t *data, size_t n, struct ip *ip)
static uint16_t ip6_checksum(uint16_t *data, size_t n, struct ip6_hdr *ip6)
{
- uint32_t phdr[2];
+ uint16_t phdr[3];
uint32_t sum = 0;
uint16_t sum2;
+ uint32_t len;
sum += uint16_checksum((uint16_t *)(void *)&ip6->ip6_src, 16);
sum += uint16_checksum((uint16_t *)(void *)&ip6->ip6_dst, 16);
- phdr[0] = htonl(n);
- phdr[1] = htonl(ip6->ip6_nxt);
- sum += uint16_checksum((uint16_t *)phdr, 8);
+ len = htonl(n);
+ phdr[0] = len & UINT16_MAX;
+ phdr[1] = (len >> 16) & UINT16_MAX;
+ /* ip6_nxt is only 8 bits, so fits comfortably into a uint16_t */
+ phdr[2] = htons(ip6->ip6_nxt);
+ sum += uint16_checksum(phdr, sizeof(phdr));
sum += uint16_checksum(data, n);
diff --git a/ctdb/common/tunable.c b/ctdb/common/tunable.c
index 4c1714c..f516d8c 100644
--- a/ctdb/common/tunable.c
+++ b/ctdb/common/tunable.c
@@ -83,7 +83,7 @@ static struct {
offsetof(struct ctdb_tunable_list, reclock_ping_period) },
{ "NoIPFailback", 0, false,
offsetof(struct ctdb_tunable_list, no_ip_failback) },
- { "DisableIPFailover", 0, false,
+ { "DisableIPFailover", 0, true,
offsetof(struct ctdb_tunable_list, disable_ip_failover) },
{ "VerboseMemoryNames", 0, false,
offsetof(struct ctdb_tunable_list, verbose_memory_names) },
@@ -145,7 +145,7 @@ static struct {
offsetof(struct ctdb_tunable_list, no_ip_host_on_all_disabled) },
{ "Samba3AvoidDeadlocks", 0, true,
offsetof(struct ctdb_tunable_list, samba3_hack) },
- { "TDBMutexEnabled", 1, false,
+ { "TDBMutexEnabled", 1, true,
offsetof(struct ctdb_tunable_list, mutex_enabled) },
{ "LockProcessesPerDB", 200, false,
offsetof(struct ctdb_tunable_list, lock_processes_per_db) },
diff --git a/ctdb/database/database_conf.c b/ctdb/database/database_conf.c
index 0333ce0..6bdb372 100644
--- a/ctdb/database/database_conf.c
+++ b/ctdb/database/database_conf.c
@@ -54,6 +54,22 @@ static bool check_static_string_change(const char *key,
return true;
}
+static bool check_static_boolean_change(const char *key,
+ bool old_value,
+ bool new_value,
+ enum conf_update_mode mode)
+{
+ if (mode == CONF_MODE_RELOAD || CONF_MODE_API) {
+ if (old_value != new_value) {
+ D_WARNING("Ignoring update of [%s] -> %s\n",
+ DATABASE_CONF_SECTION,
+ key);
+ }
+ }
+
+ return true;
+}
+
static bool database_conf_validate_lock_debug_script(const char *key,
const char *old_script,
const char *new_script,
@@ -141,4 +157,9 @@ void database_conf_init(struct conf_context *conf)
DATABASE_CONF_LOCK_DEBUG_SCRIPT,
NULL,
database_conf_validate_lock_debug_script);
+ conf_define_boolean(conf,
+ DATABASE_CONF_SECTION,
+ DATABASE_CONF_TDB_MUTEXES,
+ true,
+ check_static_boolean_change);
}
diff --git a/ctdb/database/database_conf.h b/ctdb/database/database_conf.h
index 4891b00..6fa579c 100644
--- a/ctdb/database/database_conf.h
+++ b/ctdb/database/database_conf.h
@@ -27,7 +27,8 @@
#define DATABASE_CONF_VOLATILE_DB_DIR "volatile database directory"
#define DATABASE_CONF_PERSISTENT_DB_DIR "persistent database directory"
#define DATABASE_CONF_STATE_DB_DIR "state database directory"
-#define DATABASE_CONF_LOCK_DEBUG_SCRIPT "lock debug script"
+#define DATABASE_CONF_LOCK_DEBUG_SCRIPT "lock debug script"
+#define DATABASE_CONF_TDB_MUTEXES "tdb mutexes"
void database_conf_init(struct conf_context *conf);
diff --git a/ctdb/doc/ctdb-tunables.7.xml b/ctdb/doc/ctdb-tunables.7.xml
index a925ca5..71cb0e3 100644
--- a/ctdb/doc/ctdb-tunables.7.xml
+++ b/ctdb/doc/ctdb-tunables.7.xml
@@ -178,23 +178,6 @@ MonitorInterval=20
</refsect2>
<refsect2>
- <title>DisableIPFailover</title>
- <para>Default: 0</para>
- <para>
- When set to non-zero, ctdb will not perform failover or
- failback. Even if a node fails while holding public IPs, ctdb
- will not recover the IPs or assign them to another node.
- </para>
- <para>
- When this tunable is enabled, ctdb will no longer attempt
- to recover the cluster by failing IP addresses over to other
- nodes. This leads to a service outage until the administrator
- has manually performed IP failover to replacement nodes using the
- 'ctdb moveip' command.
- </para>
- </refsect2>
-
- <refsect2>
<title>ElectionTimeout</title>
<para>Default: 3</para>
<para>
@@ -661,17 +644,6 @@ MonitorInterval=20
</refsect2>
<refsect2>
- <title>TDBMutexEnabled</title>
- <para>Default: 1</para>
- <para>
- This parameter enables TDB_MUTEX_LOCKING feature on volatile
- databases if the robust mutexes are supported. This optimizes the
- record locking using robust mutexes and is much more efficient
- that using posix locks.
- </para>
- </refsect2>
-
- <refsect2>
<title>TickleUpdateInterval</title>
<para>Default: 20</para>
<para>
diff --git a/ctdb/doc/ctdb.1.xml b/ctdb/doc/ctdb.1.xml
index 5c3ce41..355547a 100644
--- a/ctdb/doc/ctdb.1.xml
+++ b/ctdb/doc/ctdb.1.xml
@@ -800,7 +800,6 @@ DatabaseMaxDead = 5
RerecoveryTimeout = 10
EnableBans = 1
NoIPFailback = 0
-DisableIPFailover = 0
VerboseMemoryNames = 0
RecdPingTimeout = 60
RecdFailCount = 10
@@ -828,7 +827,6 @@ DBRecordCountWarn = 100000
DBRecordSizeWarn = 10000000
DBSizeWarn = 100000000
PullDBPreallocation = 10485760
-TDBMutexEnabled = 1
LockProcessesPerDB = 200
RecBufferSizeLimit = 1000000
QueueBufferSize = 1024
diff --git a/ctdb/doc/ctdb.conf.5.xml b/ctdb/doc/ctdb.conf.5.xml
index bcb67b3..01c09bf 100644
--- a/ctdb/doc/ctdb.conf.5.xml
+++ b/ctdb/doc/ctdb.conf.5.xml
@@ -305,6 +305,23 @@
</varlistentry>
<varlistentry>
+ <term>tdb mutexes = true|false</term>
+ <listitem>
+ <para>
+ This parameter enables TDB_MUTEX_LOCKING feature on
+ volatile databases if the robust mutexes are
+ supported. This optimizes the record locking using robust
+ mutexes and is much more efficient that using posix locks.
+ </para>
+ <para>
+ If robust mutexes are unreliable on the platform being
+ used then they can be disabled by setting this to
+ <literal>false</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>lock debug script = <parameter>FILENAME</parameter></term>
<listitem>
<para>
@@ -376,6 +393,35 @@
<refsect1>
<title>
+ FAILOVER CONFIGURATION
+ </title>
+
+ <para>
+ Options in this section affect CTDB failover. They are
+ valid within the <emphasis>failover</emphasis> section of file,
+ indicated by <literal>[failover]</literal>.
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term>disabled = true|false</term>
+ <listitem>
+ <para>
+ If set to <literal>true</literal> then public IP failover
+ is disabled.
+ </para>
+ <para>
+ Default: <literal>false</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>
LEGACY CONFIGURATION
</title>
@@ -436,17 +482,17 @@
</varlistentry>
<varlistentry>
- <term>no realtime = true|false</term>
+ <term>realtime scheduling = true|false</term>
<listitem>
<para>
Usually CTDB runs with real-time priority. This helps it
to perform effectively on a busy system, such as when
there are thousands of Samba clients. If you are running
CTDB on a platform that does not support real-time
- priority, you can set this to <literal>true</literal>.
+ priority, you can set this to <literal>false</literal>.
</para>
<para>
- Default: <literal>false</literal>
+ Default: <literal>true</literal>
</para>
</listitem>
</varlistentry>
diff --git a/ctdb/doc/examples/config_migrate.sh b/ctdb/doc/examples/config_migrate.sh
index 8eefd03..8479aeb 100755
--- a/ctdb/doc/examples/config_migrate.sh
+++ b/ctdb/doc/examples/config_migrate.sh
@@ -109,33 +109,44 @@ out_file_remove_if_empty ()
# script
#
-# Convert a ctdbd.conf opt+val into a ctdb.conf section+opt
+# Convert a ctdbd.conf opt+val into a ctdb.conf section+opt+val
#
# If opt is matched and val is empty then output is printed, allowing
# this function to be reused to check if opt is valid.
+#
+# Note that for boolean options, the expected value and the new value
+# form part of the data.
get_ctdb_conf_option ()
{
_opt="$1"
_val="$2"
awk -v opt="${_opt}" -v val="${_val}" \
- '$3 == opt { if (!$4 || !val || val ==$4) { print $1, $2 } }' <<EOF
-cluster node-address CTDB_NODE_ADDRESS
-cluster recovery-lock CTDB_RECOVERY_LOCK
-cluster transport CTDB_TRANSPORT
-database lock-debug-script CTDB_DEBUG_LOCKS
-database persistent-database-directory CTDB_DBDIR_PERSISTENT
-database state-database-directory CTDB_DBDIR_STATE
-database volatile-database-directory CTDB_DBDIR
-event debug-script CTDB_DEBUG_HUNG_SCRIPT
-legacy lmaster-capability CTDB_CAPABILITY_LMASTER no
-legacy no-realtime CTDB_NOSETSCHED yes
-legacy recmaster-capability CTDB_CAPABILITY_RECMASTER no
-legacy script-log-level CTDB_SCRIPT_LOG_LEVEL
-legacy start-as-disabled CTDB_START_AS_DISABLED yes
-legacy start-as-stopped CTDB_START_AS_STOPPED yes
-logging location CTDB_LOGGING
--
Samba Shared Repository
More information about the samba-cvs
mailing list