1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00
samba-mirror/ctdb
Martin Schwenke 4dd382296d ctdb-tools-ctdb: Make natgwlist and lvsmaster more resilient
Recent changes have caused these commands to attempt to get
capabilities from all nodes before doing further filtering.  This
means that capabilities are unnecessarily fetched from nodes that are
unlikely to be the master.  If such a node does not answer the control
then many nodes can fail to calculate the master node.  In the case of
natgwlist this will cause "monitor" events to fail resulting in
unhealthy nodes.

Restore the behaviour where capabilities are only fetched for a node
that will be the master if it has the desired flags.

Although this masks a problem where a connected node is not replying,
it can help to avoid an outage in some cases.

Add supporting tests and infrastructure.  Infrastructure just lets a
timeout be faked - just for ctdb_ctrl_getcapabilities_stub() so far.
First test checks that this infrastructure works if the first node
times out in natgwlist.  Second test checks the case worked around by
the above fix - that is, no failure when a node with PNN beyond the
NATGW master can time out.

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): Thu May 29 05:59:37 CEST 2014 on sn-devel-104
2014-05-29 05:59:37 +02:00
..
client ctdb-client: Talloc tdb_wrap off ctdb_db_context 2014-04-23 14:49:07 +02:00
common ctdb-util: Do not use mlockall() on AIX 2014-03-04 01:02:11 +01:00
config ctdb-eventscripts: Add check for invalid policy routing configuration 2014-05-05 03:55:08 +02:00
doc ctdb-tools/ctdb: Detach databases only if all nodes disallow client access 2014-04-23 14:49:07 +02:00
ib ctdb-ib: Make infiniband transport compile again 2014-05-29 03:35:54 +02:00
include ctdb-build: Move internal include files in a separate directory 2014-05-27 13:43:11 +02:00
lib lib-util: rename memdup to smb_memdup and fix all callers 2014-04-16 20:39:08 +02:00
packaging ctdb-daemon: Add helper process to execute event scripts 2014-01-16 12:11:37 +11:00
server ctdb-daemon: Move a ZERO_STRUCT() to a better place 2014-05-05 06:20:38 +02:00
tcp ctdb-tcp: Coverity fixes 2013-11-19 17:13:06 +01:00
tests ctdb-tools-ctdb: Make natgwlist and lvsmaster more resilient 2014-05-29 05:59:37 +02:00
tools ctdb-tools-ctdb: Make natgwlist and lvsmaster more resilient 2014-05-29 05:59:37 +02:00
utils ctdb-pmda: Do not hardcode include paths 2014-05-29 03:35:54 +02:00
web web: Add links to new manpages 2013-10-30 15:37:54 +11:00
.bzrignore more code rearrangement 2007-06-07 22:16:48 +10:00
.gitignore git: Ignore generated documentation files 2013-10-22 13:07:13 +11:00
aclocal.m4 initial version 2006-11-18 10:41:20 +11:00
autogen.sh event: Update events to latest Samba version 0.9.8 2010-08-18 09:16:31 +09:30
config.guess ctdb-build: Update to latest upstream config.guess 2013-11-27 18:46:15 +01:00
config.mk minor back-merge from samba4 2007-07-10 18:13:47 +10:00
config.sub build: Update config.guess 2012-12-30 and config.sub to 2013-01-11 2013-01-22 18:03:37 +11:00
configure.ac build: Move the default CTDB socket from /tmp to /var/run/ctdb 2013-10-25 12:06:07 +11:00
configure.rpm fixed permissions on configure.rpm 2008-04-22 16:48:25 +02:00
COPYING add a licence file 2009-02-07 08:10:34 +11:00
ctdb.pc.in (This used to be ctdb commit b0718551f55d5da9be0e6aba233f57c1ff8509be) 2009-04-08 09:14:20 +10:00
install-sh initial version 2006-11-18 10:41:20 +11:00
Makefile.in ctdb-ib: Make infiniband transport compile again 2014-05-29 03:35:54 +02:00
NEWS ctdb: Update NEWS 2013-11-27 18:46:17 +01:00
README doc: README - add information about CTDB, license and website 2012-10-22 17:39:49 +11:00
README.Coding Add a code-style document. 2010-07-30 16:37:22 +10:00

This is the release version of CTDB, a clustered implementation of TDB
database used by Samba and other projects to store temporary data.

This software is freely distributable under the GNU public license,
a copy of which you should have received with this software (in a file
called COPYING).

For documentation on CTDB, please visit CTDB website http://ctdb.samba.org.