ctdb.git
12 years agoClean up warnings: popt sure does some strange things
Martin Schwenke [Thu, 10 Nov 2011 03:16:42 +0000 (14:16 +1100)]
Clean up warnings: popt sure does some strange things

popt generates 4 compiler warnings with GCC 4.6.  There are 2
different types:

* 3 instances of:

    warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]

  One occurs in the _free() hack that is used to try and avoid a
  compiler warning.  I guess GCC got smarter?  ;-)

  The other is where an array of constant strings is passed to
  execvp(2), which arguably has the wrong type, since it has no need
  to modify the strings.

  Both of these can be worked around by casting to intptr_t before
  casting to the desired argument type.

  In poptReadConfigFile() the variable file is declared to be a
  constant string.  However, it is then passed to read(2) straight
  away and an attempt is made to cast away the "const".  However, to
  protect the value the of file is assigned to (const char *) chptr
  before it is passed to any other functions, so this protects the
  value anyway.  I'm not sure exactly what the thinking was
  here... but there seems to be no use having file be constant.

* 1 instance of:

    warning: variable ‘rc’ set but not used [-Wunused-but-set-variable]

  for the result of an execvp(2) call.  Recast the return type to
  void.  However, due to some #if-fu in the function, that can make rc
  unused in this function.  So we also need to wrap the declaration of
  rc in some corresponding #if-fu to make it disappear if not used.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoClean up warnings: add -Wno-format-zero-length to CFLAGS
Martin Schwenke [Thu, 10 Nov 2011 03:10:21 +0000 (14:10 +1100)]
Clean up warnings: add -Wno-format-zero-length to CFLAGS

There's an empty string passed to ctdb_event_script_callback() for
eventscript option arguments in ctdb_start_daemon() and this generates
a warning.

This type of warning seems pointless so let's switch it off.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoClean up warnings: -Wunused-but-set-variable in tevent_signal.c
Martin Schwenke [Thu, 10 Nov 2011 03:08:59 +0000 (14:08 +1100)]
Clean up warnings: -Wunused-but-set-variable in tevent_signal.c

Have sent this upstream to Samba.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoClean up warnings: remove unused function dump_packet()
Martin Schwenke [Wed, 9 Nov 2011 04:47:30 +0000 (15:47 +1100)]
Clean up warnings: remove unused function dump_packet()

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoClean up warnings: remove unused variable alen from scsi_io
Martin Schwenke [Wed, 9 Nov 2011 04:37:24 +0000 (15:37 +1100)]
Clean up warnings: remove unused variable alen from scsi_io

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoClean up warnings: remove set but unused variable from rb_test
Martin Schwenke [Wed, 9 Nov 2011 04:36:09 +0000 (15:36 +1100)]
Clean up warnings: remove set but unused variable from rb_test

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoClean up warnings: log some unchecked return codes from function calls
Martin Schwenke [Wed, 9 Nov 2011 04:20:07 +0000 (15:20 +1100)]
Clean up warnings: log some unchecked return codes from function calls

In a few places functions are called, the return code is assigned into
a variable but it is not checked.  This generates a compiler warning
like this:

  warning: variable ‘ret’ set but not used [-Wunused-but-set-variable]

Instead we remove the warning by checking the return code variable and
log a warning at DEBUG level if the return code indicates an error.
The justification is that there may have been a future intent to check
the return code but it hasn't been important enough to follow-up.  If
it matters, it will be logged for easy debugging.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoFix typo in ctdb_ltdb_store_server()
Martin Schwenke [Wed, 9 Nov 2011 03:55:07 +0000 (14:55 +1100)]
Fix typo in ctdb_ltdb_store_server()

The if statement uses ret but means to use ret2.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoClean up warnings: remove changed_flags in monitor_helper
Martin Schwenke [Wed, 9 Nov 2011 03:45:01 +0000 (14:45 +1100)]
Clean up warnings: remove changed_flags in monitor_helper

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoClean up warnings: ‘tevent_loop_allow_nesting’ is deprecated
Martin Schwenke [Wed, 9 Nov 2011 03:41:17 +0000 (14:41 +1100)]
Clean up warnings: ‘tevent_loop_allow_nesting’ is deprecated

CTDB wants to use these functions but Samba's tevent wants to mark
them deprecated.  This adds a #define to shut up the warnings and sets
it in CFLAGS.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoSRVID ranges: Change the ranges for SRVIDs to allow 8 bit prefixes
Ronnie Sahlberg [Tue, 8 Nov 2011 21:12:44 +0000 (08:12 +1100)]
SRVID ranges: Change the ranges for SRVIDs to allow 8 bit prefixes

Update the ranges used for SRVID allocation to allow 8 bit prefixes and thus
56 user-defined bits.
Define the defacto-use of the 0x00 prefix as a SRVID used to register a process id
Upgrade SAMBA/iSCSI/NFS/TEST from a 32 bit prefix each ot a 8 bit prefix each
for private use.

12 years agoNagios plugin for CTDB
Mathieu Parent [Sat, 5 Nov 2011 15:39:55 +0000 (16:39 +0100)]
Nagios plugin for CTDB

This plugin is GPL2 or greater as generally found in Nagios.
(this is obviously compatible with GPL3 or greater).

12 years agoconfig can be in /etc/default/ instead of /etc/sysconfig/ (ctdb_gnostics part)
Mathieu Parent [Sat, 15 Oct 2011 17:50:12 +0000 (19:50 +0200)]
config can be in /etc/default/ instead of /etc/sysconfig/ (ctdb_gnostics part)

12 years agoconfig can be in /etc/default/ instead of /etc/sysconfig/
Mathieu Parent [Sat, 15 Oct 2011 17:42:45 +0000 (19:42 +0200)]
config can be in /etc/default/ instead of /etc/sysconfig/

... on Debian system and derivated.

(ctdb_diagnostics still hardcodes /etc/sysconfig/)

12 years agoconfig/functions: CTDB_VARDIR is /var/lib/ctdb on Debian-like systems
Mathieu Parent [Thu, 13 Oct 2011 18:26:05 +0000 (20:26 +0200)]
config/functions: CTDB_VARDIR is /var/lib/ctdb on Debian-like systems

12 years agoNew version 1.12 ctdb-1.12
Ronnie Sahlberg [Tue, 8 Nov 2011 05:20:09 +0000 (16:20 +1100)]
New version 1.12

* Tue Nov 8 2011 : Version 1.12
 - Add new tunable : AllowClientDBAttach that can be used to stop
   client db access during maintenance operations
 - Updated logging for interfaces that are missing or dont exist but are
   configured to be used.
 - Add timeout argument to ctdb_cmdline_client
 - PDMA support
 - Initial support for 'readonly' delegations for ctdb databases
   This will when finished greatly improve performance for contended hot
   records that are used for just read-access.
 - New 'ctdb cattdb' command
 - Massive updates to tests and eventscripts
 - LCP2 ip allocation algorithm
 - Record Fetch collapse. Collapse multiple fetch-lock requests from cients
   to a single network fetch and defer other concurrent requests until the
   initial fetch completes, and then service the deferred calls locally.
   This will greatly improve performance for contended hot records
   where clients request write-locks.

12 years agoRecord Fetch Collapse: Collapse multiple fetch request into one single request.
Ronnie Sahlberg [Mon, 7 Nov 2011 19:55:46 +0000 (06:55 +1100)]
Record Fetch Collapse: Collapse multiple fetch request into one single request.

When multiple clients fetch the same record concurrently, send only one single
fetch across the network and deferr all other fetches locally.
This improves performance for hot records and reduces cpu load on ctdb.

12 years agoMerge remote branch 'martins/lcp2fix'
Ronnie Sahlberg [Tue, 8 Nov 2011 03:06:30 +0000 (14:06 +1100)]
Merge remote branch 'martins/lcp2fix'

12 years agoMerge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master
Ronnie Sahlberg [Tue, 8 Nov 2011 03:01:22 +0000 (14:01 +1100)]
Merge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master

12 years agoRB_TREE: Add mechanism to abort a traverse
Ronnie Sahlberg [Wed, 2 Nov 2011 02:33:28 +0000 (13:33 +1100)]
RB_TREE: Add mechanism to abort a traverse

This patch changes the callback signature for traversal
functions to allow a client to abort a traverse before it finishes.
Updates to all callers and examples as well as rb-test tool.

12 years agoFix some typos
Volker Lendecke [Tue, 1 Nov 2011 13:34:35 +0000 (14:34 +0100)]
Fix some typos

Signed-off-by: Michael Adam <obnox@samba.org>
12 years agoTests - IP allocation - add some extra output due to recent fix
Martin Schwenke [Tue, 1 Nov 2011 09:56:50 +0000 (20:56 +1100)]
Tests - IP allocation - add some extra output due to recent fix

A recent fix made the LCP2 algorithm try harder find a candidate
source node.  The debug output shows extra output because it is trying
harder so we accommodate that.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoLCP IP allocation algorithm - try harder to find a candidate source node
Martin Schwenke [Tue, 1 Nov 2011 09:52:57 +0000 (20:52 +1100)]
LCP IP allocation algorithm - try harder to find a candidate source node

There's a bug in LCP2.  Selecting the node with the highest imbalance
doesn't always work.  Some nodes can have a high imbalance metric
because they have a lot of IPs.  However, these nodes can be part of a
group that is perfectly balanced.  Nodes in another group with less
IPs might actually be imbalanced.

Instead of just trying the source node with the highest imbalance this
tries them in descending order of imbalance until it finds one where
an IP can be moved to another node.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoTests - IP allocation - new test that shows current LCP2 failure
Martin Schwenke [Tue, 1 Nov 2011 08:59:29 +0000 (19:59 +1100)]
Tests - IP allocation - new test that shows current LCP2 failure

There are 4 IPs across 2 nodes and 2 addresses across 2 other nodes.
If one of the latter nodes is unhealthy and then becomes healthy
again, an IP isn't failed back.  This is because the nodes in the 1st
group are >= unbalanced then the nodes in the 2nd group.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoTests - Allow some tests in ctdb_takover_tests to specify allowed nodes
Martin Schwenke [Tue, 1 Nov 2011 08:54:28 +0000 (19:54 +1100)]
Tests - Allow some tests in ctdb_takover_tests to specify allowed nodes

This mainly applies to ctdb_takeover_run_core when you might want to
specify that some IPs can only be hosted by some nodes.

Syntax on each line is now:

IP current_pnn  allowed_pnns

where allowed_pnns is a comma-separated list.

allowed_pnns is optional.  If not specified then address can be
assigned to all nodes that aren't included in an allowed_pnns list.
Just think of it as all PNNs and that the behaviour is undefined when
you only specify allowed_pnns for some IPs.  ;-)

current_pnn is optional and defaults to -1.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoTests - IP allocation tests - must export CTDB_LCP2.
Martin Schwenke [Tue, 1 Nov 2011 08:54:01 +0000 (19:54 +1100)]
Tests - IP allocation tests - must export CTDB_LCP2.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoLCP IP allocation algorithm - new function lcp2_failback_candidate()
Martin Schwenke [Tue, 1 Nov 2011 08:49:38 +0000 (19:49 +1100)]
LCP IP allocation algorithm - new function lcp2_failback_candidate()

There's a bug in LCP2.  Selecting the node with the highest imbalance
doesn't always work.  Some nodes can have a high imbalance metric
because they have a lot of IPs.  However, these nodes can be part of a
group that is perfectly balanced.  Nodes in another group with less
IPs might actually be imbalanced.

Factor out the code from lcp2_failback() that actually takes a node
and decides which address should be moved to which node.

This is the first step in fixing the above bug.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoMerge remote branch 'ddiss/master_pmda_namespace'
Ronnie Sahlberg [Mon, 31 Oct 2011 09:25:16 +0000 (20:25 +1100)]
Merge remote branch 'ddiss/master_pmda_namespace'

12 years agoMerge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master
Ronnie Sahlberg [Fri, 28 Oct 2011 05:04:55 +0000 (16:04 +1100)]
Merge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master

12 years agoTests: convert test tool for fetching a readonly lock to libctdb
Ronnie Sahlberg [Fri, 28 Oct 2011 04:50:44 +0000 (15:50 +1100)]
Tests: convert test tool for fetching a readonly lock to libctdb

12 years agoMerge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master
Ronnie Sahlberg [Fri, 28 Oct 2011 02:51:46 +0000 (13:51 +1100)]
Merge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master

12 years agolibctdb: dont allow ctdb_writerecord() for readonly records
Ronnie Sahlberg [Fri, 28 Oct 2011 02:38:32 +0000 (13:38 +1100)]
libctdb: dont allow ctdb_writerecord() for readonly records

12 years agoMerge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master
Ronnie Sahlberg [Fri, 28 Oct 2011 01:56:24 +0000 (12:56 +1100)]
Merge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master

12 years agoReadOnly: If record does not exist, upgrade to write-lock
Ronnie Sahlberg [Fri, 28 Oct 2011 01:41:27 +0000 (12:41 +1100)]
ReadOnly: If record does not exist, upgrade to write-lock

If we attempt a readonly lock request for a record that do not exist (yet)
in the local TDB, then upgrade the request to ask for a write lock and force a
request for migrate the record onto the local node.
This allows the "only request record on second local request for known contended records"
heuristics to try to avoid creating readonly delegations unless we have good reason to
assume it is a contended record.

12 years agoMerge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master
Ronnie Sahlberg [Fri, 28 Oct 2011 01:10:38 +0000 (12:10 +1100)]
Merge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master

12 years agoReadOnly: add readonly record lock requests to libctdb
Ronnie Sahlberg [Fri, 28 Oct 2011 00:55:46 +0000 (11:55 +1100)]
ReadOnly: add readonly record lock requests to libctdb

Initial readonly record support in libctdb.
New records are not yet created by the library but extising records will be delegated as readonly records.
This needs a bit more tests before we can drop the "old style" implementation of client
code in client/ctdb_client.c

12 years agoReadOnly: fix bug writing incorrect amount of data in delegated record
Ronnie Sahlberg [Fri, 28 Oct 2011 00:44:19 +0000 (11:44 +1100)]
ReadOnly: fix bug writing incorrect amount of data in delegated record

Fix bug when ctdbd updates the local copy of a delegated record to write the correct
amount of data to the record.

12 years agoMerge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master
Ronnie Sahlberg [Mon, 24 Oct 2011 02:30:28 +0000 (13:30 +1100)]
Merge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master

12 years agoReadOnly DOCS: update the docs for readonly delegations to remove the passage that...
Ronnie Sahlberg [Mon, 24 Oct 2011 02:19:30 +0000 (13:19 +1100)]
ReadOnly DOCS: update the docs for readonly delegations to remove the passage that records are written/updated by the client

12 years agoReadOnly: Dont update the record header from the calling client. While it is convenie...
Ronnie Sahlberg [Mon, 24 Oct 2011 02:14:26 +0000 (13:14 +1100)]
ReadOnly: Dont update the record header from the calling client. While it is convenient since it avoids having to create a child process from the main dameon for writing the updated record it makes the cleitn more complex.

Remove the code in the example client code that writes the record to the local tdb.
Add code to the local ctdbd processing of replies to check if this reply contain a ro delegation and if so, spawn a child process to lock the tdb and then write the data.

12 years agoRemove debug message
Ronnie Sahlberg [Mon, 24 Oct 2011 01:21:55 +0000 (12:21 +1100)]
Remove debug message

12 years agoMerge remote branch 'martins/tests'
Ronnie Sahlberg [Tue, 18 Oct 2011 00:54:55 +0000 (11:54 +1100)]
Merge remote branch 'martins/tests'

12 years agoonnode: unset EXTRA_SSH_OPTS when using fakessh
Martin Schwenke [Fri, 7 Oct 2011 03:59:46 +0000 (14:59 +1100)]
onnode: unset EXTRA_SSH_OPTS when using fakessh

This case was never tested and fakessh obviously won't handle the
extra arguments.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoWeb - add me as a developer. :-)
Martin Schwenke [Sun, 25 Sep 2011 04:48:25 +0000 (14:48 +1000)]
Web - add me as a developer.  :-)

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoMerge branch 'master' of ssh://git.samba.org/data/git/ctdb
Ronnie Sahlberg [Mon, 17 Oct 2011 04:08:39 +0000 (15:08 +1100)]
Merge branch 'master' of ssh://git.samba.org/data/git/ctdb

12 years agoMake ctdb_diagnostics more resilient to uncontactable nodes.
Martin Schwenke [Fri, 7 Oct 2011 04:00:42 +0000 (15:00 +1100)]
Make ctdb_diagnostics more resilient to uncontactable nodes.

Current behaviour is for onnode to timeout (for about 20s) for each
attempted ssh to a down node.  With 40 or 50 invocations of onnode
this takes a long time.

2 changes to work around this:

* If EXTRA_SSH_OPTS (which is passed to ssh by onnode) does not
  contains a ConnectTimeout= setting then add a setting for a 5 second
  timeout.

* Filter the nodes before starting any diagnosis, taking out any "bad
  nodes" that are uncontactable via onnode.

  In the nodes summary at the beginning of the output, print
  information about any "bad nodes".

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agodoc: update compiled manpages of ctdb.1 after change to xml
Michael Adam [Wed, 12 Oct 2011 20:36:38 +0000 (22:36 +0200)]
doc: update compiled manpages of ctdb.1 after change to xml

12 years agoltdbtool: ignore empty (deleted) records per default.
Gregor Beck [Tue, 27 Sep 2011 09:41:29 +0000 (11:41 +0200)]
ltdbtool: ignore empty (deleted) records per default.

Add option -e to get the old behaviour and process empty records too.

Signed-off-by: Michael Adam <obnox@samba.org>
12 years agoMerge branches 'master' and 'master' of 10.1.1.27:/shared/ctdb/ctdb-master
Ronnie Sahlberg [Wed, 12 Oct 2011 09:11:28 +0000 (20:11 +1100)]
Merge branches 'master' and 'master' of 10.1.1.27:/shared/ctdb/ctdb-master

12 years agoFix bashism in 40.fs_use
Mathieu Parent [Wed, 21 Sep 2011 19:49:34 +0000 (21:49 +0200)]
Fix bashism in 40.fs_use

Also, add -P to df, to avoid multiline on Linux when device name is long (this is the case with LVM)

12 years agoTypo deamon -> daemon
Mathieu Parent [Mon, 25 Jul 2011 22:08:59 +0000 (00:08 +0200)]
Typo deamon -> daemon

Thanks to lintian

12 years agoapache's service name is not always httpd
Mathieu Parent [Mon, 25 Jul 2011 21:35:49 +0000 (23:35 +0200)]
apache's service name is not always httpd

Solution 2 of <https://bugzilla.samba.org/show_bug.cgi?id=8317>

12 years agoLess verbosity when there is no public addresses file
Mathieu Parent [Sat, 26 Mar 2011 20:32:34 +0000 (21:32 +0100)]
Less verbosity when there is no public addresses file

This partialy reverts 81eff51, but still avoid spam.

12 years agoFix broken readdir
Mathieu Parent [Wed, 23 Mar 2011 21:20:15 +0000 (22:20 +0100)]
Fix broken readdir

Submited by Lorenzo De Liso on <http://bugs.debian.org/603155>
(originaly named 99-fix-broken-readdir-test.diff). Also reported as
<https://bugzilla.samba.org/show_bug.cgi?id=7032>.

12 years agoTests - simple integration - do a "ctdb sync" after restarting the cluster
Martin Schwenke [Fri, 2 Sep 2011 03:20:50 +0000 (13:20 +1000)]
Tests - simple integration - do a "ctdb sync" after restarting the cluster

There looks to be a minor race where IPs haven't yet been reallocated
but the cluster is healthy.  This should fix it.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoTests - IP allocation - initial unit tests
Martin Schwenke [Thu, 15 Sep 2011 07:09:36 +0000 (17:09 +1000)]
Tests - IP allocation - initial unit tests

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoTests - IP allocation - allow more interesting node states to be specified
Martin Schwenke [Thu, 15 Sep 2011 07:08:18 +0000 (17:08 +1000)]
Tests - IP allocation - allow more interesting node states to be specified

Node states on the command line are now comma-separated hex numbers,
so all flag states can be expressed.

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoOne of the entry points to release an ip reset the pnn field before invoking the...
Ronnie Sahlberg [Thu, 22 Sep 2011 05:13:26 +0000 (15:13 +1000)]
One of the entry points to release an ip reset the pnn field before invoking the eventscript.
this triggered a check for "only run the eventscript if we host the address" to trigger and shortcir=cuit calling the eventscript.

An effect of this would be that 'ctdb delip' would remove the ip from ctdb, but fail to delete it from the interface.

S1028798

12 years agoChange the 'This Node' column of the machinereadable output for 'ctdb status -Y'...
Ronnie Sahlberg [Wed, 21 Sep 2011 05:41:28 +0000 (15:41 +1000)]
Change the 'This Node' column of the machinereadable output for 'ctdb status -Y' to Y/N instead of 1/0

1/0 is unsuitable since it can be useful to check 'if a column is "1" there is something wrong with that node'

12 years agowhen checking that the interfaces exist in ctdb_add_public_address()
Ronnie Sahlberg [Wed, 21 Sep 2011 01:42:19 +0000 (11:42 +1000)]
when checking that the interfaces exist in ctdb_add_public_address()
cant talloc off vnn since it is not yet initialized and might not always be NULL

12 years agopmda: Use upstream assigned PCP domain id
David Disseldorp [Wed, 14 Sep 2011 10:54:04 +0000 (12:54 +0200)]
pmda: Use upstream assigned PCP domain id

Also use saner PMIDs in the pmns file.

12 years agoReadOnly: revokechild_active is a list, not a context.
Ronnie Sahlberg [Tue, 13 Sep 2011 08:47:18 +0000 (18:47 +1000)]
ReadOnly: revokechild_active is a list, not a context.

Dont reset the pointer to NULL after deleting the first entry, loop deleting one entry
at a time until they are all gone or we will leak some memory and possibly a process.

12 years agoDocument 'cattdb' more clearly that it dumps the content of the local TDB and not...
Ronnie Sahlberg [Tue, 13 Sep 2011 08:44:13 +0000 (18:44 +1000)]
Document 'cattdb' more clearly that it dumps the content of the local TDB and not the CTDB database

12 years agofix some compiler warnings for the test tools
Ronnie Sahlberg [Tue, 13 Sep 2011 08:41:34 +0000 (18:41 +1000)]
fix some compiler warnings for the test tools

12 years agoReadOnly: Rename the function ctdb_ltdb_fetch_readonly() to ctdb_ltdb_fetch_with_head...
Ronnie Sahlberg [Tue, 13 Sep 2011 08:38:20 +0000 (18:38 +1000)]
ReadOnly: Rename the function ctdb_ltdb_fetch_readonly() to ctdb_ltdb_fetch_with_header() since this is what it actually does.

12 years agoFix a typo in a message in ctdb backupdb.
Michael Adam [Mon, 12 Sep 2011 13:04:46 +0000 (15:04 +0200)]
Fix a typo in a message in ctdb backupdb.

12 years agoFix additional breakage from the merge for change in signature for ctdb_cmdline_clien...
Ronnie Sahlberg [Sun, 11 Sep 2011 23:44:06 +0000 (09:44 +1000)]
Fix additional breakage from the merge for change in signature for ctdb_cmdline_client() and ctdb_attach()

12 years agoMerge branch 'master-readonly-records' into foo
Ronnie Sahlberg [Sun, 11 Sep 2011 23:34:34 +0000 (09:34 +1000)]
Merge branch 'master-readonly-records' into foo

Conflicts:

Makefile.in
tools/ctdb.c

12 years agoDrop loglevel for a tevent message from FATAL to ERROR
Ronnie Sahlberg [Wed, 7 Sep 2011 23:28:33 +0000 (09:28 +1000)]
Drop loglevel for a tevent message from FATAL to ERROR

CQ S1028400

12 years agoMerge remote branch 'ddiss/master_pmda_and_client_timeouts'
Ronnie Sahlberg [Thu, 8 Sep 2011 01:22:53 +0000 (11:22 +1000)]
Merge remote branch 'ddiss/master_pmda_and_client_timeouts'

12 years agopmda: handle struct latency_counter and add num_recoveries
David Disseldorp [Fri, 2 Sep 2011 15:34:19 +0000 (17:34 +0200)]
pmda: handle struct latency_counter and add num_recoveries

Rebase the CTDB PMDA from 1.0.114 to master:
- Add tevent and ctdb_protocol includes
- Handle latency metrics now stored under struct latency_counter
- Add new metric for the num_recoveries counter

12 years agopmda: document in README how to add a new metric
David Disseldorp [Fri, 2 Sep 2011 15:43:13 +0000 (17:43 +0200)]
pmda: document in README how to add a new metric

12 years agopmda: Use CTDB_PATH macro for default socket path
David Disseldorp [Fri, 2 Sep 2011 11:26:04 +0000 (13:26 +0200)]
pmda: Use CTDB_PATH macro for default socket path

Also includes some code cleanup changes.

12 years agopmda: Pull ctdb statistics once per fetch
David Disseldorp [Mon, 8 Aug 2011 09:15:06 +0000 (11:15 +0200)]
pmda: Pull ctdb statistics once per fetch

Currently ctdb statistics are pulled in the PMDA fetch callback, which
results in a CTDB_CONTROL_STATISTICS call for each metric.
Do this once per fetch instead, and have the per-metric callbacks pull
data from the last counter cache.

12 years agopmda: Attempt reconnects while ctdbd is unavailable
David Disseldorp [Wed, 3 Aug 2011 08:38:27 +0000 (10:38 +0200)]
pmda: Attempt reconnects while ctdbd is unavailable

Attempt to reconnect to ctdbd on fetch while it is unreachable.

We must provide our own queue callback wrapper, as ctdb_client_read_cb()
exits on transport failure.

12 years agopmda: Initial ctdb pmda check-in
David Disseldorp [Wed, 13 Jul 2011 16:11:23 +0000 (18:11 +0200)]
pmda: Initial ctdb pmda check-in

The CTDB Performance Metrics Domain Agent (PMDA) is compiled when
Performance Co-Pilot (PCP) header files are present.

The CTDB PMDA periodically requests runtime counters from ctdbd (similar
to ctdb statistics) and exports these values via PCP for capture and
charting etc.

12 years agoclient: flag local node in ctdb -Y status output
David Disseldorp [Wed, 24 Aug 2011 09:34:56 +0000 (11:34 +0200)]
client: flag local node in ctdb -Y status output

Regular "ctdb status" output flags which node is the local node, do the
same for machine readable output.

12 years agoclient: add timeout argument to ctdb_attach
David Disseldorp [Mon, 8 Aug 2011 14:35:56 +0000 (16:35 +0200)]
client: add timeout argument to ctdb_attach

Rather than using a fixed 2 second CTDB_CONTROL_GETDBPATH timeout.

12 years agoclient: add req timeout argument to ctdb_cmdline_client
David Disseldorp [Mon, 8 Aug 2011 12:09:46 +0000 (14:09 +0200)]
client: add req timeout argument to ctdb_cmdline_client

Following connection to the local ctdbd, ctdb_cmdline_client() currently
issues a CTDB_CONTROL_GET_PNN request with a fixed 3 second timeout.

The ctdb cmd line client accepts a --timelimit argument for specifying
a per request timeout, pass this value through to ctdb_cmdline_client()
for use as a CTDB_CONTROL_GET_PNN request timeout.

12 years agoMerge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master
Ronnie Sahlberg [Tue, 6 Sep 2011 07:29:30 +0000 (17:29 +1000)]
Merge branch 'master' of 10.1.1.27:/shared/ctdb/ctdb-master

12 years agoInterface monitoring: add a event to trigger every 30 seconds to check that all inter...
Ronnie Sahlberg [Tue, 6 Sep 2011 07:02:19 +0000 (17:02 +1000)]
Interface monitoring: add a event to trigger every 30 seconds to check that all interfaces referenced by the public address list actually exists.

This will make it much easier to root-cause problems such as
S1029023
when an external application deleted the interface while it is still is in use by ctdbd.

12 years agoCheck interfaces: when reading the public addresses file to create the vnn list
Ronnie Sahlberg [Tue, 6 Sep 2011 06:11:00 +0000 (16:11 +1000)]
Check interfaces:  when reading the public addresses file to create the vnn list
check that the actual interface exist, print error and fail startup if the interface does not exist.

12 years agoMerge branch 'master' of ssh://git.samba.org/data/git/ctdb
Ronnie Sahlberg [Mon, 5 Sep 2011 06:42:49 +0000 (16:42 +1000)]
Merge branch 'master' of ssh://git.samba.org/data/git/ctdb

12 years agoAdd a tunable "AllowClientDBAttach" with default value 1.
Michael Adam [Fri, 2 Sep 2011 14:42:10 +0000 (16:42 +0200)]
Add a tunable "AllowClientDBAttach" with default value 1.

When set to 0, clients will not be able to attach to databases
via the db_attach control. This might can be useful for maintenance
where ctdb should be kept running but clients should not be able
to modify databases.

12 years agotools/ctdb: fix a typo in a debug message
Michael Adam [Fri, 2 Sep 2011 14:23:22 +0000 (16:23 +0200)]
tools/ctdb: fix a typo in a debug message

12 years agotests:ctdb_fetch_lock_once we must link with @POPT_OBJ@ in case -lpopt is not available
Ronnie Sahlberg [Fri, 2 Sep 2011 03:31:41 +0000 (13:31 +1000)]
tests:ctdb_fetch_lock_once   we must link with @POPT_OBJ@ in case -lpopt is not available

12 years agotests: Link ctdb_fetch_lock_once with @TDB_OBJ@ not -ltdb so we dont create an unneed...
Ronnie Sahlberg [Fri, 2 Sep 2011 03:21:33 +0000 (13:21 +1000)]
tests: Link ctdb_fetch_lock_once with @TDB_OBJ@ not -ltdb so we dont create an unneeded dependency on having a standalone tdb library installed

12 years agoNew version 1.11 ctdb-1.11
Ronnie Sahlberg [Thu, 1 Sep 2011 02:30:00 +0000 (12:30 +1000)]
New version 1.11

12 years agoReadOnly: update the documentation about readonly locks master-readonly-records
Ronnie Sahlberg [Thu, 1 Sep 2011 01:40:51 +0000 (11:40 +1000)]
ReadOnly: update the documentation about readonly locks

12 years agoReadOnly: add a new control to activate readonly lock capability for a database.
Ronnie Sahlberg [Thu, 1 Sep 2011 01:08:18 +0000 (11:08 +1000)]
ReadOnly: add a new control to activate readonly lock capability for a database.
let all databases default to not support this  until enabled through this control

12 years agoReadOnly: add a readonly flag to the getdbmap control and show the readonly setting...
Ronnie Sahlberg [Thu, 1 Sep 2011 00:28:15 +0000 (10:28 +1000)]
ReadOnly: add a readonly flag to the getdbmap control and show the readonly setting in ctdb getdbmap output

12 years agoReadOnly: Change the ctdb_db structure to keep a uint8_t for flags instead of a boole...
Ronnie Sahlberg [Thu, 1 Sep 2011 00:21:55 +0000 (10:21 +1000)]
ReadOnly: Change the ctdb_db structure to keep a uint8_t for flags instead of a boolean for
the persistent flag.
This is the same size as the original boolean but allows ut to add additional flags for the database

12 years agoMerge remote branch 'martins/tests'
Ronnie Sahlberg [Wed, 31 Aug 2011 22:55:23 +0000 (08:55 +1000)]
Merge remote branch 'martins/tests'

12 years agoMerge remote branch 'martins/eventscripts'
Ronnie Sahlberg [Wed, 31 Aug 2011 22:52:48 +0000 (08:52 +1000)]
Merge remote branch 'martins/eventscripts'

12 years agoTests - eventscripts - add some multievent tests
Martin Schwenke [Wed, 31 Aug 2011 07:29:14 +0000 (17:29 +1000)]
Tests - eventscripts - add some multievent tests

Running "./run_tests -s simple/* multievent/*" results in a stupid
summary.  Will need to work on that...

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoTests - eventscripts - allow "ctdb scriptstatus" output to be primed
Martin Schwenke [Wed, 31 Aug 2011 07:27:05 +0000 (17:27 +1000)]
Tests - eventscripts - allow "ctdb scriptstatus" output to be primed

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoMerge branch 'eventscripts' into tests
Martin Schwenke [Wed, 31 Aug 2011 05:38:55 +0000 (15:38 +1000)]
Merge branch 'eventscripts' into tests

12 years agoEventscripts - enhance ctdb_replay_monitor_status()
Martin Schwenke [Wed, 31 Aug 2011 05:34:43 +0000 (15:34 +1000)]
Eventscripts - enhance ctdb_replay_monitor_status()

Print useful output and return a suitable exit code.

The DISABLED and TIMEDOUT statuses use fake negative return codes, and
these can't be faked from the shell.  So we map DISABLED to OK and
TIMEDOUT to ERROR - this should avoid nearly all surprises.  When we
do this we add a note to the beginning of the output.  The alternative
is to "fix" ctdbd to use only codes that can actually be returned by
shell scripts.  However, the reason for using negative codes is
probably to distinguish them from real ones...

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoTests - eventscripts - ctdb stub - implement scriptstatus, tweaks
Martin Schwenke [Tue, 30 Aug 2011 06:27:04 +0000 (16:27 +1000)]
Tests - eventscripts - ctdb stub - implement scriptstatus, tweaks

Signed-off-by: Martin Schwenke <martin@meltin.net>
12 years agoTests - eventscripts - formatting tweak in simple_test()
Martin Schwenke [Tue, 30 Aug 2011 06:25:13 +0000 (16:25 +1000)]
Tests - eventscripts - formatting tweak in simple_test()

Signed-off-by: Martin Schwenke <martin@meltin.net>