summaryrefslogtreecommitdiff
path: root/ctdb
Commit message (Collapse)AuthorAgeFilesLines
* ctdb-daemon: Do not attempt to chown Unix domain socket in test modeMartin Schwenke2020-11-021-7/+9
| | | | | | | | | | | | If run with UID wrapper and UID_WRAPPER_ROOT=1 then securing the socket will fail. Test mode means that local daemons are in use, so securing the socket is not important. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Volker Lendecke <vl@samba.org>
* ctdb-daemon: Clean up call to bind socketMartin Schwenke2020-11-021-4/+4
| | | | | | | | | | Variable res is only used once and ret is re-used many times. Drop res, use ret, which doesn't need to be initialised. Modernise debug macro. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Volker Lendecke <vl@samba.org>
* ctdb-daemon: Clean up socket bind/secure/listenMartin Schwenke2020-11-021-17/+25
| | | | | | | | Obey the coding style, modernise debug macros, clean up whitespace. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Volker Lendecke <vl@samba.org>
* ctdb-common: Avoid aliasing errors during code optimizationAmitay Isaacs2020-10-211-14/+17
| | | | | | | | | | | | | | | When compiling with GCC 10.x and -O3 optimization, the IP checksum calculation code generates wrong checksum. The function uint16_checksum gets inlined during optimization and ip4pkt->tcp data gets wrongly aliased. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14537 Signed-off-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Martin Schwenke <martin@meltin.net> Autobuild-User(master): Martin Schwenke <martins@samba.org> Autobuild-Date(master): Wed Oct 21 05:52:28 UTC 2020 on sn-devel-184
* ctdb-tests: Strengthen node state checking in ctdb disable/enable testMartin Schwenke2020-10-061-2/+2
| | | | | | | | | | | | | Check that the desired state is set on all nodes instead of just the test node. This ensures that node flags have correctly propagated across the cluster. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14513 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Autobuild-User(master): Amitay Isaacs <amitay@samba.org> Autobuild-Date(master): Tue Oct 6 04:32:06 UTC 2020 on sn-devel-184
* ctdb-recoverd: Drop unnecessary and broken codeMartin Schwenke2020-10-061-47/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | update_flags() has already updated the recovery master's canonical node map, based on the flags from each remote node, and pushed out these flags to all nodes. If i == j then the node map has already been updated from this remote node's flags, so simply drop this case. Although update_flags() has updated flags for all nodes, it did not update each node map in remote_nodemaps[] to reflect this. This means that remote_nodemaps[] may contain inconsistent flags for some nodes so it should not be used to check consistency when i != j. Further, a meaningful difference in flags can only really occur if update_flags() failed. In that case this code is never reached. These observations combine to imply that this whole loop should be dropped. This leaves potential sub-second inconsistencies due to out-of-band healthy/unhealthy flag changes pushed via CTDB_SRVID_PUSH_NODE_FLAGS. These updates could be dropped (takeover run asks each node for available IPs rather than making centralised decisions based on node flags) but for now they will be fixed in the next iteration of main_loop(). BUG: https://bugzilla.samba.org/show_bug.cgi?id=14513 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Drop unnecessary codeMartin Schwenke2020-10-061-14/+0
| | | | | | | | This has already been done in update_flags(). BUG: https://bugzilla.samba.org/show_bug.cgi?id=14513 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb/test_ceph_rados_reclock: check for service registrationDavid Disseldorp2020-09-241-1/+7
| | | | | | | | Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Samuel Cabrero <scabrero@samba.org> Autobuild-User(master): David Disseldorp <ddiss@samba.org> Autobuild-Date(master): Thu Sep 24 00:52:42 UTC 2020 on sn-devel-184
* ctdb/doc: mention ctdb_mutex_ceph_rados_helper mgr registrationDavid Disseldorp2020-09-231-0/+4
| | | | | Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Samuel Cabrero <scabrero@samba.org>
* ctdb/ceph: register recovery lock holder with ceph-mgrDavid Disseldorp2020-09-231-1/+32
| | | | | | | | | | The Ceph Manager's service map is useful for tracking the status of Ceph related services. By registering the CTDB recovery lock holder, Ceph storage administrators can more easily identify where and when a CTDB cluster is up and running. Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Samuel Cabrero <scabrero@samba.org>
* ctdb-daemon: Drop implementation of old-style database pull/push controlsMartin Schwenke2020-09-114-226/+5
| | | | | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Autobuild-User(master): Amitay Isaacs <amitay@samba.org> Autobuild-Date(master): Fri Sep 11 06:29:32 UTC 2020 on sn-devel-184
* ctdb-protocol: Drop marshalling functions for old-style database pull/pushMartin Schwenke2020-09-113-86/+0
| | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-protocol: Drop client functions for old-style database pull/pushMartin Schwenke2020-09-112-59/+0
| | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-client: Drop unused synchronous functions for database pull/pushMartin Schwenke2020-09-112-67/+0
| | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recovery: Simplify database push function namesMartin Schwenke2020-09-111-35/+34
| | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recovery: Drop unnecessary database push wrapperMartin Schwenke2020-09-111-68/+8
| | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recovery: Drop passing of capabilities into database pullMartin Schwenke2020-09-111-7/+1
| | | | | | | | This is no longer necessary because the capability new style database pull is assumed to always be available. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recovery: Simplify database pull function namesMartin Schwenke2020-09-111-3/+3
| | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recovery: Remove use of old pull and push controlsMartin Schwenke2020-09-111-306/+16
| | | | | | | | | | | | Removes use of the old controls without cleaning up the code. Clean up can be done later. After this change the CTDB_CAP_FRAGMENTED_CONTROLS capability is no longer checked. This capability can be removed along with the controls. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-tests: Simplify comment in large database recovery testMartin Schwenke2020-09-111-10/+4
| | | | | | | The older style controls mentioned are being removed. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb: Prevent man page duplicationDavid Mulder2020-09-111-1/+1
| | | | | | | | | | | | The new waf detects a duplicate instance of ctdb_mutex_ceph_rados_helper.7.xml, which is due to manpages_extra being a pointer to manpages_misc, therefore each call to build() added duplicate entries to the manpages_misc global entry. Signed-off-by: David Mulder <dmulder@suse.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* ctdb-recoverd: Broadcast takeover run message when verifying IPsMartin Schwenke2020-08-181-3/+5
| | | | | | | | | | | This makes it consistent with the monitoring code. If the master has changed then this means the master will always get the message. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Autobuild-User(master): Amitay Isaacs <amitay@samba.org> Autobuild-Date(master): Tue Aug 18 06:24:11 UTC 2020 on sn-devel-184
* ctdb-recoverd: Rename update_local_flags() -> update_flags()Martin Schwenke2020-08-181-6/+6
| | | | | | | | This also updates remote flags so the name is misleading. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Change update_local_flags() to use already retrieved nodemapsMartin Schwenke2020-08-181-17/+9
| | | | | | BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Get remote nodemaps earlierMartin Schwenke2020-08-181-7/+7
| | | | | | | | update_local_flags() will be changed to use these nodemaps. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Do not fetch the nodemap from the recovery masterMartin Schwenke2020-08-181-1/+10
| | | | | | | | | | | The nodemap has already been fetched from the local node and is actually passed to this function. Care must be taken to avoid referencing the "remote" nodemap for the recovery master. It also isn't useful to do so, since it would be the same nodemap. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Change get_remote_nodemaps() to use connected nodesMartin Schwenke2020-08-181-3/+2
| | | | | | | | | | | | | | | | | The plan here is to use the nodemaps retrieved by get_remote_nodes() in update_local_flags(). This will improve efficiency, since get_remote_nodes() fetches flags from nodes in parallel. It also means that get_remote_nodes() can be used exactly once early on in main_loop() to retrieve remote nodemaps. Retrieving nodemaps multiple times is unnecessary and racy - a single monitoring iteration should not fetch flags multiple times and compare them. This introduces a temporary behaviour change but it will be of no consequence when the above changes are made. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Fix node_pnn check and assignment of nodemap into arrayMartin Schwenke2020-08-181-3/+11
| | | | | | | | This array is indexed by the same index as nodemap, not the PNN. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Add fail callback to assign banning creditsMartin Schwenke2020-08-181-8/+17
| | | | | | | | | Also drop error handling in main_loop() that is replaced by this change. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Add an intermediate state struct for nodemap fetchingMartin Schwenke2020-08-181-2/+11
| | | | | | | | This will allow an error callback to be added. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Move memory allocation into get_remote_nodemaps()Martin Schwenke2020-08-181-12/+20
| | | | | | BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Change signature of get_remote_nodemaps()Martin Schwenke2020-08-181-6/+7
| | | | | | | | | Change 1st argument to a rec context, since this will be needed later. Drop the nodemap argument and access it via rec->nodemap instead. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Fix a local memory leakMartin Schwenke2020-08-181-0/+1
| | | | | | | | | | | The memory is allocated off the memory context used by the current iteration of main loop. It is freed when main loop completes the fix doesn't require backporting to stable branches. However, it is sloppy so it is worth fixing. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Basic cleanups for get_remote_nodemaps()Martin Schwenke2020-08-181-16/+23
| | | | | | | | | | Don't log an error on failure - let the caller can do this. Apart from this: fix up coding style and modernise the remaining error message. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-doc: Link to CTDB page in wikiMartin Schwenke2020-08-171-0/+8
| | | | | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Autobuild-User(master): Amitay Isaacs <amitay@samba.org> Autobuild-Date(master): Mon Aug 17 06:13:11 UTC 2020 on sn-devel-184
* ctdb-tools: Drop "ctdb isnotrecmaster" commandMartin Schwenke2020-08-173-58/+1
| | | | | | | | This isn't used anywhere and can easily be checked via "ctdb pnn" and "ctdb recmaster" commands. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* lib: relicense smb_strtoul(l) under LGPLv3Ralph Boehme2020-08-036-0/+6
| | | | | | | | | Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Swen Schillig <swen@linux.ibm.com> Reviewed-by: Volker Lendecke <vl@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Mon Aug 3 22:21:04 UTC 2020 on sn-devel-184
* ctdb-scripts: Use nfsconf as a last resort get nfsd thread countMartin Schwenke2020-07-272-0/+8
| | | | | | | | | | | | | | | If nfsconf exists then use it as last resort to attempt to extract [nfsd]:threads from /etc/nfs.conf. Invocation of nfsconf requires "|| true" because this script uses "set -e". Add a stub that always fails to at least test this much. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14444 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Autobuild-User(master): Amitay Isaacs <amitay@samba.org> Autobuild-Date(master): Mon Jul 27 07:06:58 UTC 2020 on sn-devel-184
* ctdb-scripts: Use nfsconf as a last resort to set NFS_HOSTNAMEMartin Schwenke2020-07-271-4/+17
| | | | | | | | | If nfsconf exists then use it as last resort to attempt to extract [statd]:name from /etc/nfs.conf. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14444 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb: Change LVS to use leader/followerMartin Schwenke2020-07-2419-56/+56
| | | | | | | | | | | Instead of master/slave. Nearly all of these are simple textual substitutions, which preserve the case of the original. A couple of minor cleanups were made in the documentation (such as "LVSMASTER" -> "LVS leader"). Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb: Change NAT gateway to use leader/followerMartin Schwenke2020-07-2436-189/+189
| | | | | | | | | | Instead of master/slave. Nearly all of these are simple textual substitutions, which preserve the case of the original. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Simplify calculation of new flagsMartin Schwenke2020-07-241-3/+1
| | | | | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Autobuild-User(master): Martin Schwenke <martins@samba.org> Autobuild-Date(master): Fri Jul 24 06:03:23 UTC 2020 on sn-devel-184
* ctdb-recoverd: Correctly find nodemap entry for pnnMartin Schwenke2020-07-241-2/+8
| | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Do not retrieve nodemap from recovery masterMartin Schwenke2020-07-241-16/+2
| | | | | | | It is already in rec->nodemap. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Flatten update_flags_on_all_nodes()Martin Schwenke2020-07-241-43/+26
| | | | | | | | | | | | | | | | | The logic currently in ctdb_ctrl_modflags() will be optimised so that it no longer matches the pattern for a control function. So, remove this function and squash its functionality into the only caller. Although there are some superficial changes, the behaviour is unchanged. Flattening the 2 functions produces some seriously weird logic for setting the new flags, to the point where using ctdb_ctrl_modflags() for this purpose now looks very strange. The weirdness will be cleaned up in a subsequent commit. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Move ctdb_ctrl_modflags() to ctdb_recoverd.cMartin Schwenke2020-07-243-70/+68
| | | | | | | This file is the only user of this function. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Improve a call to update_flags_on_all_nodes()Martin Schwenke2020-07-241-1/+1
| | | | | | | This should take a PNN, not an array index. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Use update_flags_on_all_nodes()Martin Schwenke2020-07-241-12/+6
| | | | | | | This is clearer than using the MODFLAGS control directly. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Introduce some local variables to improve readabilityMartin Schwenke2020-07-241-10/+21
| | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* ctdb-recoverd: Change update_flags_on_all_nodes() to take rec argumentMartin Schwenke2020-07-241-4/+5
| | | | | | | | This makes fields such as recmaster and nodemap easily available if required. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>