kai/samba-autobuild/.git
12 years agoLibCTDB: add get persistent db seqnum control
Ronnie Sahlberg [Mon, 28 Nov 2011 05:30:46 +0000 (16:30 +1100)]
LibCTDB: add get persistent db seqnum control

(This used to be ctdb commit 6e96a62494bbb2c7b0682ebf0c2115dd2f44f7af)

12 years agoDB Seqnum: must provide a ctdb_ltdb_header when calling ctdb_ltdb_fetch()
Ronnie Sahlberg [Sun, 27 Nov 2011 23:41:17 +0000 (10:41 +1100)]
DB Seqnum: must provide a ctdb_ltdb_header when calling ctdb_ltdb_fetch()

(This used to be ctdb commit 1fea9ef55a6a9d201ad1b49583451ac3e6b1c66d)

12 years agodoc: commit generated ctdb.1 manpages after xml change
Michael Adam [Tue, 29 Nov 2011 12:42:40 +0000 (13:42 +0100)]
doc: commit generated ctdb.1 manpages after xml change

(This used to be ctdb commit 3b6ef3442f0b62d65ec0f9be67a2b1dbf7e4af67)

12 years agodoc: document the "--print-recordflags" parameter to "ctdb"
Michael Adam [Tue, 29 Nov 2011 12:41:16 +0000 (13:41 +0100)]
doc: document the "--print-recordflags" parameter to "ctdb"

(This used to be ctdb commit 5b527e6127a649fa80dcf9a7599b22bcb7cd3640)

12 years agoctdb: add an option --print-recordflags to trigger printing record flags in catdb...
Michael Adam [Tue, 29 Nov 2011 09:24:52 +0000 (10:24 +0100)]
ctdb: add an option --print-recordflags to trigger printing record flags in catdb and dumpdbbackup

This changes the default behaviour to not print record flags.

(This used to be ctdb commit 2d2ce07c51055d9400b22cd3c1fd682597cb921c)

12 years agodoc: commit generated ctdb.1 manpages after xml change
Michael Adam [Tue, 29 Nov 2011 12:39:37 +0000 (13:39 +0100)]
doc: commit generated ctdb.1 manpages after xml change

(This used to be ctdb commit 0e26774f32d7ea0ce9d034c331730f5324f6b092)

12 years agodoc: document the "--print-hash" parameter to "ctdb".
Michael Adam [Tue, 29 Nov 2011 12:39:08 +0000 (13:39 +0100)]
doc: document the "--print-hash" parameter to "ctdb".

(This used to be ctdb commit 998b7f4450026051867525d91c6d8dcbd2326ab5)

12 years agoctdb: add an option --print-hash to enable printing of record hashes when dumping dbs
Michael Adam [Mon, 28 Nov 2011 23:56:23 +0000 (00:56 +0100)]
ctdb: add an option --print-hash to enable printing of record hashes when dumping dbs

(This used to be ctdb commit efc033c28ade97f9884794256d59a4553e052d5f)

12 years agodoc: commit generated ctdb.1 manpages after xml change
Michael Adam [Tue, 29 Nov 2011 12:37:29 +0000 (13:37 +0100)]
doc: commit generated ctdb.1 manpages after xml change

(This used to be ctdb commit 7f46671fc912c969c5c87e50b77e2e3a7d6c8904)

12 years agodoc: document the "--print-lmaster" parameter to "ctdb"
Michael Adam [Tue, 29 Nov 2011 12:36:38 +0000 (13:36 +0100)]
doc: document the "--print-lmaster" parameter to "ctdb"

(This used to be ctdb commit 7e7d86ac9b05f8b67414200adc8ac87cfccf26cf)

12 years agoctdb: add an option --print-lmaster to enable printing of lmaster in "ctdb catdb"
Michael Adam [Mon, 28 Nov 2011 16:36:03 +0000 (17:36 +0100)]
ctdb: add an option --print-lmaster to enable printing of lmaster in "ctdb catdb"

(This used to be ctdb commit 326f88ef622620cb9e0569c4497bc0e86124beaa)

12 years agodoc: commit generated ctdb.1 manpages after xml change
Michael Adam [Tue, 29 Nov 2011 12:35:02 +0000 (13:35 +0100)]
doc: commit generated ctdb.1 manpages after xml change

(This used to be ctdb commit 6f8e7480dadf15d1639355fdb61d5bef025a0325)

12 years agodoc: document the "--print-datasize" parameter to "ctdb"
Michael Adam [Tue, 29 Nov 2011 12:31:11 +0000 (13:31 +0100)]
doc: document the "--print-datasize" parameter to "ctdb"

(This used to be ctdb commit 9e8045a5b0d8bd9ab2e0343b329de9f45b883531)

12 years agoctdb: add an option --print-datasize to only print datasize instead of dumping data...
Michael Adam [Mon, 28 Nov 2011 16:19:03 +0000 (17:19 +0100)]
ctdb: add an option --print-datasize to only print datasize instead of dumping data in db dumps

Used in catdb, cattdb and dumpdbbackup.

(This used to be ctdb commit dd866116041e71cbf91e7fd91edcc9501634051d)

12 years agodoc: commit generated ctdb.1 manpages after xml change
Michael Adam [Tue, 29 Nov 2011 12:32:25 +0000 (13:32 +0100)]
doc: commit generated ctdb.1 manpages after xml change

(This used to be ctdb commit 079f12dfc1edeac9748af15f652f2f1a6ed35548)

12 years agodoc: document the --print-emptyrecords switch in the "ctdb" manpage.
Michael Adam [Tue, 29 Nov 2011 12:28:35 +0000 (13:28 +0100)]
doc: document the --print-emptyrecords switch in the "ctdb" manpage.

(This used to be ctdb commit 7b4663dd2454b798841815044f898dead9b734e2)

12 years agoctdb: add an option --print-emptyrecords to enable printing of empty records in dumpi...
Michael Adam [Mon, 28 Nov 2011 16:11:16 +0000 (17:11 +0100)]
ctdb: add an option --print-emptyrecords to enable printing of empty records in dumping databases

this option is used with the commands catdb, cattdb and dumpdbbackup.

(This used to be ctdb commit 6ec68a2e667f66d2b194fe48cb75229a2777842e)

12 years agoclient: add version ctdb_traverse_ext() of ctdb_traverse() that can list empty records.
Michael Adam [Wed, 22 Dec 2010 11:45:06 +0000 (12:45 +0100)]
client: add version ctdb_traverse_ext() of ctdb_traverse() that can list empty records.

(This used to be ctdb commit 4ada4bfc4510886c5c7fcf49e09711b9d2dcb75d)

12 years agotraverse: add a flag to enable transferring empty records in cluster wide traverse
Michael Adam [Sun, 27 Nov 2011 22:16:33 +0000 (23:16 +0100)]
traverse: add a flag to enable transferring empty records in cluster wide traverse

This will be useful for also printing information about empty/deleted
records in "ctdb catdb", e.g. for debugging vacuuming issues.

(This used to be ctdb commit ddc5da3a0df7701934404192a0a0aa659a806acb)

12 years agorecoverd: try to become the recovery master if we have the capability, but the curren...
Stefan Metzmacher [Tue, 21 Jun 2011 13:49:30 +0000 (15:49 +0200)]
recoverd: try to become the recovery master if we have the capability, but the current master doesn't

metze
(cherry picked from commit 6ba8af28f8a8f79db65120a97d7157dcc5c7e083)

Signed-off-by: Michael Adam <obnox@samba.org>
(This used to be ctdb commit ccd67cf7f26713e695000d89d9ce8cfa78bfe00f)

12 years agoThis breaks the build since the recovery loop is different in master
Ronnie Sahlberg [Tue, 29 Nov 2011 03:38:02 +0000 (14:38 +1100)]
This breaks the build since the recovery loop is different in master
compared to old 1.0 branches
This must have been mistakenly applied to master when you intended to push
for a different branch i guess.

Revert "recoverd: try to become the recovery master if we have the capability, but the current master doesn't"

This reverts commit a97d417aba85e901540147a4dff4794249442939.

(This used to be ctdb commit c19cb751077b78cf4b6e28a1e3746d4ffedbfd68)

12 years agorecoverd: try to become the recovery master if we have the capability, but the curren...
Stefan Metzmacher [Tue, 21 Jun 2011 13:49:30 +0000 (15:49 +0200)]
recoverd: try to become the recovery master if we have the capability, but the current master doesn't

metze

(This used to be ctdb commit a97d417aba85e901540147a4dff4794249442939)

12 years agorecoverd: let async_getcap_callback() also update ctdb->capabilities
Stefan Metzmacher [Tue, 21 Jun 2011 13:46:34 +0000 (15:46 +0200)]
recoverd: let async_getcap_callback() also update ctdb->capabilities

metze

(This used to be ctdb commit ef5b47d1183ee99c39ae63045a994d35255ac829)

12 years agovacuum: update (C) from vacuum rewrite
Michael Adam [Sat, 26 Nov 2011 00:06:13 +0000 (01:06 +0100)]
vacuum: update (C) from vacuum rewrite

(This used to be ctdb commit a95b524e57b861416f65baef7a0235bf7e394cef)

12 years agovacuum: write a big and up-to-date explaining comment for ctdb_vacuum_db()
Michael Adam [Fri, 25 Nov 2011 12:55:20 +0000 (13:55 +0100)]
vacuum: write a big and up-to-date explaining comment for ctdb_vacuum_db()

(This used to be ctdb commit 6b9d308985ef2363c62fde6340ad37d56f6d7702)

12 years agovacuum: fix a comment typo in vacuum_traverse()
Michael Adam [Fri, 25 Nov 2011 12:54:48 +0000 (13:54 +0100)]
vacuum: fix a comment typo in vacuum_traverse()

(This used to be ctdb commit 88ad1e75c686cd47aec18b0a8eb93c3b125f0e97)

12 years agovacuum: fix horrible indentation/whitespacing for ctdb_vacuum_event()
Michael Adam [Fri, 25 Nov 2011 12:35:05 +0000 (13:35 +0100)]
vacuum: fix horrible indentation/whitespacing for ctdb_vacuum_event()

(This used to be ctdb commit 0f070a65a322bd6d3240ca96a9e5c3633ef647bf)

12 years agovacuum: fix a comment typo in vacuum_traverse()
Michael Adam [Fri, 25 Nov 2011 12:34:15 +0000 (13:34 +0100)]
vacuum: fix a comment typo in vacuum_traverse()

(This used to be ctdb commit 39a5c0d8cca4ce5e8bc7055739a6377fb2dc36e0)

12 years agovacuum: fix an abundance of indentation white spaces in ctdb_vacuum_db()
Michael Adam [Fri, 25 Nov 2011 12:25:27 +0000 (13:25 +0100)]
vacuum: fix an abundance of indentation white spaces in ctdb_vacuum_db()

(This used to be ctdb commit 4ae564e415560cde7e4cd4c5a1d7699f3d49621b)

12 years agovacuum: rename "size" to "freelist_size" for clarity
Michael Adam [Fri, 25 Nov 2011 12:23:23 +0000 (13:23 +0100)]
vacuum: rename "size" to "freelist_size" for clarity

(This used to be ctdb commit 057023f5843c91d1cf8512f3675a01a119ea6157)

12 years agobuild: add target libctdb.so.0 and symlink libctdb.so
Michael Adam [Fri, 2 Sep 2011 23:30:08 +0000 (01:30 +0200)]
build: add target libctdb.so.0 and symlink libctdb.so

(This used to be ctdb commit 66af6659eaffaeafbfa58779162aabe915d1c50f)

12 years agobuild: add socket_wrapper objects to test binaries
Michael Adam [Fri, 25 Nov 2011 16:07:24 +0000 (17:07 +0100)]
build: add socket_wrapper objects to test binaries

(This used to be ctdb commit 7d4809ba343114e435830c7c1ab047dc4ce5ff0e)

12 years agobuild: add option --enable-socket-wrapper to build binaries with socket wrapper support
Michael Adam [Thu, 20 Oct 2011 12:17:45 +0000 (14:17 +0200)]
build: add option --enable-socket-wrapper to build binaries with socket wrapper support

(This used to be ctdb commit 8d65d7f399ba2e6a4162eed5e84a58c7cb024187)

12 years agoadd socket_wrapper from samba
Michael Adam [Thu, 20 Oct 2011 12:17:25 +0000 (14:17 +0200)]
add socket_wrapper from samba

(This used to be ctdb commit 99ce8a9de648babdfb1b1ea0219ee184c9718048)

12 years agolibutil: Remove obsolete signal type cast.
Andreas Schneider [Fri, 19 Feb 2010 11:44:07 +0000 (12:44 +0100)]
libutil: Remove obsolete signal type cast.

(This used to be ctdb commit 8dd377b6a4d188af086f9a5b41a1b48e44eda6f3)

12 years agobuild: add libreplace network checks to configure
Michael Adam [Fri, 25 Nov 2011 15:29:44 +0000 (16:29 +0100)]
build: add libreplace network checks to configure

(This used to be ctdb commit 5e45a176031e973e97450296c28ddfb0a779e00b)

12 years agoupdate lib/replace to current upstream version (samba master)
Michael Adam [Fri, 25 Nov 2011 15:36:40 +0000 (16:36 +0100)]
update lib/replace to current upstream version (samba master)

(This used to be ctdb commit 17bcffab19fdbb435b4745ff90c327342bbbf0f8)

12 years agosystem_linux: correctly cast sockaddr_in6 to sockaddr for sendto() in ctdb_sys_send_tcp()
Michael Adam [Fri, 25 Nov 2011 16:01:58 +0000 (17:01 +0100)]
system_linux: correctly cast sockaddr_in6 to sockaddr for sendto() in ctdb_sys_send_tcp()

(This used to be ctdb commit 11bebd5367102fcd02b17c44ac87bf50d4c68785)

12 years agosystem_linux: correctly cast sockaddr_in to sockaddr in ctdb_sys_send_tcp()
Michael Adam [Fri, 25 Nov 2011 15:59:51 +0000 (16:59 +0100)]
system_linux: correctly cast sockaddr_in to sockaddr in ctdb_sys_send_tcp()

(This used to be ctdb commit cc60df5a3edebfdf50fcd22ebfaad35736f90379)

12 years agologging: properly cast sockaddr_in to sockaddr for sendto() in ctdb_syslog_log()
Michael Adam [Fri, 25 Nov 2011 15:42:53 +0000 (16:42 +0100)]
logging: properly cast sockaddr_in to sockaddr for sendto() in ctdb_syslog_log()

(This used to be ctdb commit 7420d9991e30575219c919ce2a8edce20ad3eb63)

12 years agologging: some whitespace cleanup in ctdb_syslog_log()
Michael Adam [Fri, 25 Nov 2011 15:41:59 +0000 (16:41 +0100)]
logging: some whitespace cleanup in ctdb_syslog_log()

(This used to be ctdb commit b283be8658d6229314b9265ed8659d2cac573073)

12 years agologging: properly cast sockaddr_in to sockaddr for bind in start_syslog_daemon()
Michael Adam [Fri, 25 Nov 2011 15:40:52 +0000 (16:40 +0100)]
logging: properly cast sockaddr_in to sockaddr for bind in start_syslog_daemon()

(This used to be ctdb commit add2506caf3340118be05a21b05dd71b822b1516)

12 years agoMerge remote branch 'martins/eventscripts'
Ronnie Sahlberg [Fri, 18 Nov 2011 04:01:13 +0000 (15:01 +1100)]
Merge remote branch 'martins/eventscripts'

(This used to be ctdb commit 8959d15804bb5901356d7beec1ecddb1cabbca52)

12 years agoMerge remote branch 'martins/scriptstatus'
Ronnie Sahlberg [Fri, 18 Nov 2011 03:46:45 +0000 (14:46 +1100)]
Merge remote branch 'martins/scriptstatus'

(This used to be ctdb commit c4ff223096e7dae2e67692825a78c520d30211e0)

12 years agoMerge remote branch 'martins/ctdb_control_oom'
Ronnie Sahlberg [Fri, 18 Nov 2011 03:45:56 +0000 (14:45 +1100)]
Merge remote branch 'martins/ctdb_control_oom'

(This used to be ctdb commit 6a57c64c58c77fd9dc7c7a1583d402c3ce0313b1)

12 years agoMerge remote branch 'martins/hashinclude'
Ronnie Sahlberg [Fri, 18 Nov 2011 03:42:10 +0000 (14:42 +1100)]
Merge remote branch 'martins/hashinclude'

(This used to be ctdb commit 0f6991010cf4e1f0dd9f39243bcc8fff5dcc0524)

12 years agoMerge remote branch 'martins/warnings'
Ronnie Sahlberg [Fri, 18 Nov 2011 03:36:45 +0000 (14:36 +1100)]
Merge remote branch 'martins/warnings'

(This used to be ctdb commit 58a1e25e1c563ebede57eea2e8f4e2c5785d01bf)

12 years agoEventscripts: Add special -ECANCELED status for monitor events that are cancelled
Ronnie Sahlberg [Thu, 17 Nov 2011 02:34:29 +0000 (13:34 +1100)]
Eventscripts: Add special -ECANCELED status for monitor events that are cancelled

When a monitor event is canceled by a higher priority script, make sure we return
status -ECANCELED to the callback in ctdB_monitor.c
Also treat -ECANCELED as a simple "try monitor event again" and skip modifying any HEALTHY/UNHEALTHY flags when this happens

(This used to be ctdb commit a15ec57c26d1bc82af85f74eebae0bd8abde3233)

12 years agoEventscripts - add facility to 10.interface to delete unmanaged IPs
Martin Schwenke [Thu, 17 Nov 2011 05:47:00 +0000 (16:47 +1100)]
Eventscripts - add facility to 10.interface to delete unmanaged IPs

For a number of reasons (delip failure, admin stupidity, ...) an
interface that hosts public addresses can also contain spurious,
unmanaged addresses.

Add functionality to 10.interfaces, controlled by new configuration
variable CTDB_DELETE_UNEXPECTED_IPS, to delete these addresses when
encountered as part of a monitor event.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 88f88d86b0d08240f749fb721b8c401c2eeb1099)

12 years agoEventscripts - remove $0 from error messages in 40.fs_use
Martin Schwenke [Fri, 14 Oct 2011 04:55:12 +0000 (15:55 +1100)]
Eventscripts - remove $0 from error messages in 40.fs_use

The script name is now prepended to output by ctdbd.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit bfa0fe70db195413a6d7a98f46f7a1270aba678c)

12 years agoEventscripts: Make 40.fs_use use less processes and arguably clearer.
Martin Schwenke [Fri, 14 Oct 2011 04:52:12 +0000 (15:52 +1100)]
Eventscripts: Make 40.fs_use use less processes and arguably clearer.

* $fs can be parsed using shell prefix and suffix removal.

* df output can be parsed with a single call to sed.

  Failure is indicated by empty output from sed, so we check for that
  as the error condition, changing the associated message
  appropriately.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit c5ef0d1440f1d952784cc67946c414d149722d01)

12 years agoRelax an out of memory message.
Martin Schwenke [Wed, 16 Nov 2011 04:25:14 +0000 (15:25 +1100)]
Relax an out of memory message.

The call to ctdb_transport_allocate() can fail for 2 reasons:

* Unable to allocate memory.

* The transport is down, perhaps because CTDB is shutting down.

Either cause will be appropriately logged.

The current use of CTDB_NO_MEMORY_VOID() prints an "out of memory"
message regardless of what happened in ctdb_transport_allocate() and
this could be misleading.

Change this to print a more relaxed message.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 8c4a93e77c7d7d0cec6b2afd42c22475f1b5ccdc)

12 years agoMake some ctdb_takeover.c functions static
Martin Schwenke [Fri, 11 Nov 2011 03:41:47 +0000 (14:41 +1100)]
Make some ctdb_takeover.c functions static

These were intentionally not static so they could be linked to in unit
test programs.  However, using the CCAN-style unit tests where
relevant code is just included, this is no longer necessary.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit d0e9e8554614bd49ffb9ec3509feaa0e80d0f65d)

12 years agoTests: change ctdb_takeover_tests.c to include ctdbd code
Martin Schwenke [Fri, 11 Nov 2011 03:15:52 +0000 (14:15 +1100)]
Tests: change ctdb_takeover_tests.c to include ctdbd code

Do this instead of linking to it.  This means that, after previous
cleanups, we can fix ctdb_takeover.c to use static functions when
appropriate and simply include all the code we need to run tests.

To make this reusable in other tests, new file ctdbd_tests.c does all
of the relevant including.  ctdb_takeover_tests.c just includes that
file.

Test objects built in this way can depend on new Makefile macro
$(CTDB_TEST_C), which contains ctdbd_tests.c and everything it
includes.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 41869d42194b74db43a176a068e96e411007e5f2)

12 years agoRename ctdb_control_get_stat_history() local variable to avoid shadowing.
Martin Schwenke [Fri, 11 Nov 2011 03:06:21 +0000 (14:06 +1100)]
Rename ctdb_control_get_stat_history() local variable to avoid shadowing.

Local variable stat generates a warning because it shadows a global
declatation, presumably stat(2).  Rename it to s.

This is in the context of wanting to run CCAN-style tests where most
of the ctdbd code is just included in the test program.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit d17efacb3aa6fac61d89f4c88ca17579341c335f)

12 years agoRename ctdb_ctrl_getscriptstatus() parameter to avoid shadowing a global
Martin Schwenke [Fri, 11 Nov 2011 03:03:59 +0000 (14:03 +1100)]
Rename ctdb_ctrl_getscriptstatus() parameter to avoid shadowing a global

Rename parameter script_status to scripts to avoid shadowing a global
function with the same name in eventscript.c.

This is in the context of wanting to run CCAN-style tests where most
of the ctdbd code is just included in the test program.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 668358057c1e6b9bbad7209212f9135c5e6241a0)

12 years agoRename ctdb_control_destructor() to ctdb_client_control_destructor()
Martin Schwenke [Fri, 11 Nov 2011 03:02:09 +0000 (14:02 +1100)]
Rename ctdb_control_destructor() to ctdb_client_control_destructor()

This avoids a name clash with a slightly different function in
ctdb_control.c.

This is in the context of wanting to run CCAN-style tests where most
of the ctdbd code is just included in the test program.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 82f6108bfbc7e48ca88650297c6a1c6ede0e1c9c)

12 years agoMove some common functions to common/ctdb_ltdb.c
Martin Schwenke [Fri, 11 Nov 2011 02:56:46 +0000 (13:56 +1100)]
Move some common functions to common/ctdb_ltdb.c

Move identical copies of ctdb_null_func(), ctdb_fetch_func(),
ctdb_fetch_with_header_func() from ctdb_client.c and
ctdb_ltdb_server.c to somewhere common.

This is in the context of wanting to run CCAN-style tests where most
of the ctdbd code is just included in the test program.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 126cb0d369b2b1aed63801dc4ba0554399e8b7e4)

12 years agoAdded some #ifndefs to stop files being included multiple times.
Martin Schwenke [Fri, 11 Nov 2011 01:41:24 +0000 (12:41 +1100)]
Added some #ifndefs to stop files being included multiple times.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit fdca12c25e6fce6206135b994dedf44265e4eb09)

12 years agoClean up warnings: rpcgen output contains unused variable.
Martin Schwenke [Thu, 10 Nov 2011 04:12:25 +0000 (15:12 +1100)]
Clean up warnings: rpcgen output contains unused variable.

Grep it out in the Makefile.  This should be very obvious if the
output changes and the grep breaks something.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 79638bdd884caaf899c1b41984a5f0cf638207b5)

12 years agoFix lib/replace
Martin Schwenke [Thu, 10 Nov 2011 04:07:55 +0000 (15:07 +1100)]
Fix lib/replace

Warnings are generated when compiling strptime.c.  Why is it being
compiled on Linux?  strptime(3) has been in glibc for 15 years!

It turns out that some of the test fragments were being looked for in
lib/replace/test/ and some in lib/replace/tests/.  In addition,
test*/strptime.c was missing.

Move the tests to lib/replace/test/ for consistency with upstream
(Samba) and copy in test/strptime.c from Samba.  Tweak repdir.m4 to
handle the directory rename.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit aaf1ddfc83cf2ede29288baf04a1aa1c69a5cab5)

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>
(This used to be ctdb commit ac9236e64bd0b61740cc787819a1222bc6a67d4a)

12 years agoFix ctdb scriptstatus -n all
Martin Schwenke [Thu, 10 Nov 2011 04:41:03 +0000 (15:41 +1100)]
Fix ctdb scriptstatus -n all

This didn't have auto_all set as true.  However, there's no special
code to handle "-n all" and it just fails.  If auto_all works for
status then it might as well work for scriptstatus.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 3084220e2aac3664511969f10cad206e505150a0)

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>
(This used to be ctdb commit 23c164926c5ec4da6d90a5bdcbf2d0100729b451)

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>
(This used to be ctdb commit 080edee3d053d770466ebcc976eb1135c80feef8)

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>
(This used to be ctdb commit c22e201be15e7d5b788c2f5f7916b553e0faaa2a)

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>
(This used to be ctdb commit 79d31660c7e612f0290fd085203856ad9e70b26f)

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>
(This used to be ctdb commit d0244fec8d0dd2abd31a8677e2c2b254b030c47b)

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>
(This used to be ctdb commit 1932466c76de2b184c2a257120768ab8c9d6c12a)

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>
(This used to be ctdb commit f40101a615f8b9826a484e4697bfea6ee2b9ba88)

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>
(This used to be ctdb commit 3e4fa518f02db75e4e4a7f326a71df226913f8a8)

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>
(This used to be ctdb commit 788cdbddbc902a5b076d23473450065b551d274d)

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.

(This used to be ctdb commit 5de9ec2bdf8067406165bc470becdca87f458ae9)

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).

(This used to be ctdb commit df1ac1cfd65f32743ca2588edfdad46ce5a4f03f)

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)

(This used to be ctdb commit b6a9dacefd8f031677702f0fbf6b321beb4c4d54)

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/)

(This used to be ctdb commit 1341329f6125d491b82c873f793af819e677f714)

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

(This used to be ctdb commit 56160eccb62178f645b017b1257677a1e854b2bc)

12 years agoNew version 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.

(This used to be ctdb commit bda24b7f313289404b68ce8b9177fbd6b6a05dd7)

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.

(This used to be ctdb commit 82d6946ad8b3348e8b9d3d971f24925ade02d1be)

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'

(This used to be ctdb commit 7c02d242af552aa732f5c70ea4eeefbc8a8542e2)

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

(This used to be ctdb commit d772743e9a4d4d40eb95cd8d5178708e77057b79)

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.

(This used to be ctdb commit 8ab0c63ad36cfbbb1e5fed46a1f4c47b1fdb581f)

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>
(This used to be ctdb commit f24e943eb7d8b86ce6b32ae37e3884ec4af0f7df)

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>
(This used to be ctdb commit 9a6f918bf6db79c1f8c53c0df23d47b73c117ea2)

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>
(This used to be ctdb commit 574091d5aced5e87aefad52f8bc47aa75c25fbf6)

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>
(This used to be ctdb commit 1d26e7cff6292fcbf63efc4628ffbb63b6f1f73c)

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>
(This used to be ctdb commit ed83604da82ebe566d6eb330ab7119e861e853c8)

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>
(This used to be ctdb commit a97f19d1281eaf9874e64995a43524aeed315515)

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>
(This used to be ctdb commit 75718c5768b5bb5c0bcd7dd90e0327c6ed22a63d)

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'

(This used to be ctdb commit 6dbbc86f36a1fd07d90ca947a35ad7b1f8554636)

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

(This used to be ctdb commit bdcaf531e07ad5a08841aab2f396849c554a0fa6)

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

(This used to be ctdb commit 18b6969dd1760521f839e5a928f1c7e9b3c34d4e)

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

(This used to be ctdb commit 996aa01af9b402d2cd07c6942fdcc5ffc111ca85)

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

(This used to be ctdb commit c930a44731d24b3bb51851864c7cdd0061483c0b)

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

(This used to be ctdb commit 0474a9244c6721f85955efcbdd630c0e5990e76c)

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.

(This used to be ctdb commit e6003e52617385f731ccf93b13d21d5403534a78)

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

(This used to be ctdb commit 0452f212f2ddc1089dce83339bad0d73763f238f)

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

(This used to be ctdb commit fb50a45a21ff56480d76acd1c33c13c323cbf5e2)

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.

(This used to be ctdb commit 8814d8bc159a5e368afaa236ac7d865165db04b2)

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

(This used to be ctdb commit 0a2ea7e1a1e034a9a17debff763084a0936b0515)