vlendec/samba-autobuild/.git
8 years agotalloc: Test that talloc magic differs between processes. talloc-2.1.4
Adrian Cochrane [Fri, 4 Sep 2015 00:59:57 +0000 (12:59 +1200)]
talloc: Test that talloc magic differs between processes.

Signed-off-by: Adrian Cochrane <adrianc@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Fri Oct  9 23:15:06 CEST 2015 on sn-devel-104

8 years agotalloc: Increment minor version due to added talloc_test_get_magic.
Adrian Cochrane [Fri, 9 Oct 2015 00:32:55 +0000 (13:32 +1300)]
talloc: Increment minor version due to added talloc_test_get_magic.

Signed-off-by: Adrian Cochrane <adrianc@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agotalloc: Provide tests access to talloc_magic
Adrian Cochrane [Fri, 4 Sep 2015 00:03:33 +0000 (12:03 +1200)]
talloc: Provide tests access to talloc_magic

Signed-off-by: Adrian Cochrane <adrianc@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agotalloc: Test magic protection measures.
Adrian Cochrane [Wed, 2 Sep 2015 01:30:31 +0000 (13:30 +1200)]
talloc: Test magic protection measures.

Signed-off-by: Adrian Cochrane <adrianc@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib/talloc: Provide multiple-loading detection for libtalloc via rand()
Andrew Bartlett [Tue, 24 Feb 2015 00:43:54 +0000 (13:43 +1300)]
lib/talloc: Provide multiple-loading detection for libtalloc via rand()

The use of rand() is strongly discrouanged, but here is it ideal, as we just want to select a different
set of random bytes if we are called again within the same process.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Signed-off-by: Adrian Cochrane <adrianc@catalyst.net.nz>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib/talloc: Disrupt buffer overflow attacks on Samba by using random magic
Andrew Bartlett [Wed, 16 Oct 2013 21:30:23 +0000 (10:30 +1300)]
lib/talloc: Disrupt buffer overflow attacks on Samba by using random magic

By setting the talloc magic to a random value, we make it much harder to overwrite a talloc_chunk
in a valid way with a simple buffer overflow.

The flags are placed before more senstive variables so they have to be overwritten first.

Inspired by the exploit in: http://blog.csnc.ch/wp-content/uploads/2012/07/sambaexploit_v1.0.pdf

Andrew Bartlett

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Signed-off-by: Adrian Cochrane <adrianc@catalyst.net.nz>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agobuild: Move __attribute__ ((destructor)) and ((constructor)) tests to wafsamba
Andrew Bartlett [Tue, 24 Feb 2015 00:26:29 +0000 (13:26 +1300)]
build: Move __attribute__ ((destructor)) and ((constructor)) tests to wafsamba

This allows us to use them in talloc as well.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Signed-off-by: Adrian Cochrane <adrianc@catalyst.net.nz>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agoFix a few small spelling mistakes in DEBUG messages to reduce confusion
Richard Sharpe [Thu, 8 Oct 2015 00:19:38 +0000 (17:19 -0700)]
Fix a few small spelling mistakes in DEBUG messages to reduce confusion
for those trying to debug stuff.

Signed-off-by: Richard Sharpe <rsharpe@samba.org>
Reviewed-by: Ira Cooper <ira@samba.org>
Autobuild-User(master): Richard Sharpe <sharpe@samba.org>
Autobuild-Date(master): Thu Oct  8 08:48:06 CEST 2015 on sn-devel-104

8 years agovfs_commit: set the fd on open before calling SMB_VFS_FSTAT
Uri Simchoni [Wed, 7 Oct 2015 19:44:11 +0000 (22:44 +0300)]
vfs_commit: set the fd on open before calling SMB_VFS_FSTAT

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11547

Signed-off-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Thu Oct  8 02:56:41 CEST 2015 on sn-devel-104

8 years agolib: Make messaging_send_iov_from return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make messaging_send_iov_from return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make messaging_ctdbd_init return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make messaging_ctdbd_init return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Use poll_intr_one_fd in ctdb_read_packet
Volker Lendecke [Sat, 3 Oct 2015 05:33:12 +0000 (22:33 -0700)]
lib: Use poll_intr_one_fd in ctdb_read_packet

This is an actual bug fix if someone sets "ctdb timeout" to something != 0

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Remove messaging_tevent_context() dependency from ctdbd_conn.c
Volker Lendecke [Sat, 3 Oct 2015 05:30:35 +0000 (22:30 -0700)]
lib: Remove messaging_tevent_context() dependency from ctdbd_conn.c

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdbd_probe return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdbd_probe return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdb_unwatch return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdb_unwatch return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdb_watch_us return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdb_watch_us return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdbd_control_local return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdbd_control_local return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdbd_register_ips return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdbd_register_ips return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdbd_traverse return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdbd_traverse return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdbd_parse return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdbd_parse return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdbd_migrate return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdbd_migrate return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdbd_db_attach return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdbd_db_attach return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdbd_messaging_send_iov return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdbd_messaging_send_iov return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdbd_messaging_connection return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdbd_messaging_connection return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdbd_init_connection return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdbd_init_connection return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make ctdbd_register_msg_ctx return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make ctdbd_register_msg_ctx return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make get_cluster_vnn return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make get_cluster_vnn return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Make register_with_ctdbd return 0/errno
Volker Lendecke [Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)]
lib: Make register_with_ctdbd return 0/errno

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Rename ctdbd_control_unix to ctdbd_control
Volker Lendecke [Sat, 3 Oct 2015 03:31:52 +0000 (20:31 -0700)]
lib: Rename ctdbd_control_unix to ctdbd_control

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Remove ctdbd_control
Volker Lendecke [Sat, 3 Oct 2015 03:29:56 +0000 (20:29 -0700)]
lib: Remove ctdbd_control

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Use ctdbd_control_unix in ctdbd_register_ips
Volker Lendecke [Sat, 3 Oct 2015 03:08:53 +0000 (20:08 -0700)]
lib: Use ctdbd_control_unix in ctdbd_register_ips

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Use ctdbd_control_unix in ctdbd_db_attach
Volker Lendecke [Sat, 3 Oct 2015 03:08:53 +0000 (20:08 -0700)]
lib: Use ctdbd_control_unix in ctdbd_db_attach

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Use ctdbd_control_unix in ctdbd_db_attach
Volker Lendecke [Sat, 3 Oct 2015 03:08:53 +0000 (20:08 -0700)]
lib: Use ctdbd_control_unix in ctdbd_db_attach

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Use ctdbd_control_unix in ctdbd_dbpath
Volker Lendecke [Sat, 3 Oct 2015 03:08:53 +0000 (20:08 -0700)]
lib: Use ctdbd_control_unix in ctdbd_dbpath

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Use ctdbd_control_unix in ctdbd_working
Volker Lendecke [Sat, 3 Oct 2015 03:06:59 +0000 (20:06 -0700)]
lib: Use ctdbd_control_unix in ctdbd_working

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Rename a variable
Volker Lendecke [Sat, 3 Oct 2015 03:05:15 +0000 (20:05 -0700)]
lib: Rename a variable

We'll have "int ret" in the next commit

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Use ctdbd_control_unix in get_cluster_vnn
Volker Lendecke [Sat, 3 Oct 2015 03:00:32 +0000 (20:00 -0700)]
lib: Use ctdbd_control_unix in get_cluster_vnn

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Use ctdbd_control_unix in register_with_ctdbd
Volker Lendecke [Sat, 3 Oct 2015 03:00:32 +0000 (20:00 -0700)]
lib: Use ctdbd_control_unix in register_with_ctdbd

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Add ctdbd_control_unix
Volker Lendecke [Sat, 3 Oct 2015 02:54:31 +0000 (19:54 -0700)]
lib: Add ctdbd_control_unix

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Fix error talloc leaks in ctdb_read_packet()
Volker Lendecke [Sat, 3 Oct 2015 02:51:01 +0000 (19:51 -0700)]
lib: Fix error talloc leaks in ctdb_read_packet()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agoctdb-recoverd: Always check for recmaster before doing recovery
Amitay Isaacs [Tue, 6 Oct 2015 06:31:41 +0000 (17:31 +1100)]
ctdb-recoverd: Always check for recmaster before doing recovery

Recovery daemon checks if it is the recovery master before performing
certain checks.  During those checks it's possible that re-election can
change the recmaster.  In such a case, the recovery daemon should never
do a database recovery.

This is not complete fix since the recovery master can still change
while the recovery is going on.  The correct fix is to abort recovery
if the recovery master changes.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Autobuild-User(master): Amitay Isaacs <amitay@samba.org>
Autobuild-Date(master): Wed Oct  7 17:55:05 CEST 2015 on sn-devel-104

8 years agoctdb-recoverd: Get rid of connected-ness comparison in election
Amitay Isaacs [Tue, 6 Oct 2015 03:46:48 +0000 (14:46 +1100)]
ctdb-recoverd: Get rid of connected-ness comparison in election

The reason for favouring more connected node is to create a larger
cluster in case of a split brain.  In split brain condition, the nodes
are not communicating across partitions and each partition will run its
own election.  Among all the partitions, the node which holds the recovery
lock will eventually "win".  All the other nodes which won election but
could not grab recovery lock will end up banning themselves.

This also prevents the recovery master role from bouncing between nodes
during startup when the entire cluster is restarted.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-recoverd: Do not freeze databases for election
Amitay Isaacs [Tue, 6 Oct 2015 00:52:06 +0000 (11:52 +1100)]
ctdb-recoverd: Do not freeze databases for election

If election occurs during SMB activity, then trying to freeze all the
databases can cause samba/ctdb deadlock which parallel database recovery
is trying to avoid.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-call: Improve a log message
Amitay Isaacs [Mon, 21 Sep 2015 07:12:25 +0000 (17:12 +1000)]
ctdb-call: Improve a log message

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-recoverd: Add code for parallel database recovery
Amitay Isaacs [Thu, 17 Sep 2015 06:22:38 +0000 (16:22 +1000)]
ctdb-recoverd: Add code for parallel database recovery

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Add parallel database recovery capability
Amitay Isaacs [Thu, 17 Sep 2015 06:14:51 +0000 (16:14 +1000)]
ctdb-daemon: Add parallel database recovery capability

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Use a define for default capabilities
Amitay Isaacs [Thu, 17 Sep 2015 06:13:55 +0000 (16:13 +1000)]
ctdb-daemon: Use a define for default capabilities

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-recoverd: Update flags on all nodes before database recovery
Amitay Isaacs [Thu, 17 Sep 2015 07:10:15 +0000 (17:10 +1000)]
ctdb-recoverd: Update flags on all nodes before database recovery

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-recoverd: Update capabilities before the database recovery
Amitay Isaacs [Thu, 17 Sep 2015 06:07:37 +0000 (16:07 +1000)]
ctdb-recoverd: Update capabilities before the database recovery

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-recovery: Factor out existing database recovery code
Amitay Isaacs [Thu, 17 Sep 2015 06:00:47 +0000 (16:00 +1000)]
ctdb-recovery: Factor out existing database recovery code

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-recoverd: Add parallel database recovery helper
Amitay Isaacs [Mon, 29 Jun 2015 04:56:53 +0000 (14:56 +1000)]
ctdb-recoverd: Add parallel database recovery helper

Parallel database recovery fixes the samba/ctdb deadlock during recovery.

Many times samba tries to grab multiple record locks in sequence.
Consider a case when samba is already holding a record lock on a database
and tries to get a record lock on second database.  If the second record
is not available on the local node, samba asks ctdb to migrate the record.
If recovery occurs at this time (e.g. node becoming inactive), ctdb
cannot freeze all the databases since samba is already holding a lock
and waiting for the second lock.  CTDB can process the second record
request only after the recovery is complete, thus causing a deadlock.

In parallel database recovery, each database is frozen and recovered
independent from each other.  So as soon as the second database is
recovered, CTDB will resend all the pending migration requests and Samba
can get the second lock.  Once samba releases both the locks, ctdb can
freeze the first database and recover it completing recovery process.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-client: Add client API for new database controls
Amitay Isaacs [Wed, 9 Sep 2015 02:29:54 +0000 (12:29 +1000)]
ctdb-client: Add client API for new database controls

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-protocol: Add controls for parallel DB recovery
Amitay Isaacs [Fri, 31 Jul 2015 15:47:22 +0000 (01:47 +1000)]
ctdb-protocol: Add controls for parallel DB recovery

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-client: Add new client API implementation
Amitay Isaacs [Tue, 14 Apr 2015 14:14:25 +0000 (00:14 +1000)]
ctdb-client: Add new client API implementation

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-protocol: Add ctdb protocol serialization routines
Amitay Isaacs [Tue, 14 Apr 2015 07:20:05 +0000 (17:20 +1000)]
ctdb-protocol: Add ctdb protocol serialization routines

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-include: Remove unused structure definitions
Amitay Isaacs [Tue, 14 Apr 2015 01:42:45 +0000 (11:42 +1000)]
ctdb-include: Remove unused structure definitions

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-common: Add logging utilities
Amitay Isaacs [Sat, 1 Aug 2015 12:36:04 +0000 (22:36 +1000)]
ctdb-common: Add logging utilities

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-common: Add communication endpoint abstraction
Amitay Isaacs [Sat, 4 Apr 2015 09:23:44 +0000 (20:23 +1100)]
ctdb-common: Add communication endpoint abstraction

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-common: Add packet write abstraction
Amitay Isaacs [Mon, 6 Apr 2015 07:26:29 +0000 (17:26 +1000)]
ctdb-common: Add packet write abstraction

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-common: Add packet read abstraction
Amitay Isaacs [Wed, 2 Sep 2015 12:32:50 +0000 (22:32 +1000)]
ctdb-common: Add packet read abstraction

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-packaging: Package public library and header for tevent-unix-util
Amitay Isaacs [Tue, 8 Sep 2015 07:58:54 +0000 (17:58 +1000)]
ctdb-packaging: Package public library and header for tevent-unix-util

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-build: Placeholder for public headers from lib/util
Amitay Isaacs [Tue, 8 Sep 2015 08:16:08 +0000 (18:16 +1000)]
ctdb-build: Placeholder for public headers from lib/util

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agolib/util: Create a new library for tevent_unix.c
Amitay Isaacs [Tue, 8 Sep 2015 00:34:21 +0000 (10:34 +1000)]
lib/util: Create a new library for tevent_unix.c

This is required for ctdb.  This avoids adding dependency on wstatus
and ntstatus to ctdb build.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-build: Set PKGCONFIGDIR for public libraries in standalone build
Amitay Isaacs [Tue, 8 Sep 2015 08:15:35 +0000 (18:15 +1000)]
ctdb-build: Set PKGCONFIGDIR for public libraries in standalone build

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-packaging: Install header files in ctdb subdirectory
Amitay Isaacs [Tue, 8 Sep 2015 07:58:25 +0000 (17:58 +1000)]
ctdb-packaging: Install header files in ctdb subdirectory

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Use reqid abstraction
Amitay Isaacs [Tue, 17 Mar 2015 03:30:18 +0000 (14:30 +1100)]
ctdb-daemon: Use reqid abstraction

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-common: Add request id abstraction
Amitay Isaacs [Tue, 17 Mar 2015 02:29:44 +0000 (13:29 +1100)]
ctdb-common: Add request id abstraction

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-include: Remove unused definition
Amitay Isaacs [Tue, 17 Mar 2015 02:41:36 +0000 (13:41 +1100)]
ctdb-include: Remove unused definition

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: whitespace fix
Amitay Isaacs [Wed, 8 Apr 2015 04:41:59 +0000 (14:41 +1000)]
ctdb-daemon: whitespace fix

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: formatting fix
Amitay Isaacs [Wed, 8 Apr 2015 04:41:12 +0000 (14:41 +1000)]
ctdb-daemon: formatting fix

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Replace ctdb_message with srvid abstraction
Amitay Isaacs [Wed, 8 Apr 2015 04:38:26 +0000 (14:38 +1000)]
ctdb-daemon: Replace ctdb_message with srvid abstraction

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-common: Add srvid abstraction
Amitay Isaacs [Mon, 16 Mar 2015 12:25:27 +0000 (23:25 +1100)]
ctdb-common: Add srvid abstraction

Attempt to make common code independent and free from ctdb_context.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-common: Add db_hash abstraction
Amitay Isaacs [Tue, 17 Mar 2015 01:35:31 +0000 (12:35 +1100)]
ctdb-common: Add db_hash abstraction

A hash table implemented using in-memory tdb backend.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: whitespace fix
Amitay Isaacs [Wed, 8 Apr 2015 04:25:12 +0000 (14:25 +1000)]
ctdb-daemon: whitespace fix

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: formatting fix
Amitay Isaacs [Wed, 8 Apr 2015 04:25:01 +0000 (14:25 +1000)]
ctdb-daemon: formatting fix

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Remove ctdb from traverse_callback
Amitay Isaacs [Wed, 8 Apr 2015 04:24:31 +0000 (14:24 +1000)]
ctdb-daemon: Remove ctdb from traverse_callback

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-build: Do not split ctdb-system subsystem
Amitay Isaacs [Mon, 3 Aug 2015 05:38:32 +0000 (15:38 +1000)]
ctdb-build: Do not split ctdb-system subsystem

The functions defined in common/system_*.c depend on the functions
defined in common/system_common.c.  So keep them together.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-build: Do not mark ctdb private headers public
Amitay Isaacs [Wed, 30 Sep 2015 01:38:52 +0000 (11:38 +1000)]
ctdb-build: Do not mark ctdb private headers public

These headers are used by the server code and should not be marked public.
Samba builds against the in-tree version of the headers and should not
be built with externally installed CTDB.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Remove freeze requirement for updating vnnmap
Amitay Isaacs [Mon, 14 Sep 2015 03:49:05 +0000 (13:49 +1000)]
ctdb-daemon: Remove freeze requirement for updating vnnmap

In the parallel database recovery model, all the database will not remain
frozen at the same time.  So relax the condition to check if recovery
is active.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Add a check for database generation consistency
Amitay Isaacs [Fri, 11 Sep 2015 06:14:12 +0000 (16:14 +1000)]
ctdb-daemon: Add a check for database generation consistency

Before setting recovery mode to normal, confirm that all the databases are
recovered by matching the database generation with the global generation.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Check packet generation against database generation
Amitay Isaacs [Tue, 15 Sep 2015 06:50:19 +0000 (16:50 +1000)]
ctdb-daemon: Check packet generation against database generation

CTDB verifies the generation in the packet header matches that of the
current generation.  However, that check now needs to be done where
database context is available.  So add in the check in handlers for
database requests (CTDB_REQ_CALL, CTDB_REQ_DMASTER, CTDB_REPLY_DMASTER
and CTDB_REPLY_CALL).

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-call: Delete old defer queue if recovery occurs
Amitay Isaacs [Wed, 23 Sep 2015 04:47:58 +0000 (14:47 +1000)]
ctdb-call: Delete old defer queue if recovery occurs

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Use database generation in packet headers for database requests
Amitay Isaacs [Tue, 15 Sep 2015 06:50:19 +0000 (16:50 +1000)]
ctdb-daemon: Use database generation in packet headers for database requests

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Introduce per database generation
Amitay Isaacs [Fri, 11 Sep 2015 04:20:44 +0000 (14:20 +1000)]
ctdb-daemon: Introduce per database generation

The database generation for each database is updated only during recovery.
After recovery is complete the database generation would be the same as
the global generation.

The database generation is required for parallel database recovery.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Use individual database freeze in blocking freeze
Amitay Isaacs [Thu, 17 Sep 2015 02:57:51 +0000 (12:57 +1000)]
ctdb-freeze: Use individual database freeze in blocking freeze

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Ensure all databases get frozen during freeze
Amitay Isaacs [Wed, 16 Sep 2015 08:49:00 +0000 (18:49 +1000)]
ctdb-freeze: Ensure all databases get frozen during freeze

It's possible that the databases can get attached after initial freeze.
This typically happens during startup as CTDB will only attach persistent
databases and go in to startup freeze.  During recovery, the recovery
master will attach all the missing databases and then send freeze
controls.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Make function ctdb_start_freeze static
Amitay Isaacs [Wed, 16 Sep 2015 08:23:23 +0000 (18:23 +1000)]
ctdb-freeze: Make function ctdb_start_freeze static

Since the banning code does not call this function anymore, it can be
made static.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-banning: Do not freeze databases on ban in the daemon
Amitay Isaacs [Wed, 16 Sep 2015 08:20:31 +0000 (18:20 +1000)]
ctdb-banning: Do not freeze databases on ban in the daemon

Once the node is marked as banned, the recovery daemon on that node will
start freezing the databases anyway.  This check happens every second
in recovery daemon, so the delay in freezing the databases on ban would
be a second.

The main reason for freezing databases is to prevent any database access
from samba clients.  However, banning code also drops the public IPs
and thus disconnecting the clients.  In addition, the generation gets
set to INVALID_GENERATION, thus database record migration requests on
that node will not be processed.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Fix a log message
Amitay Isaacs [Tue, 15 Sep 2015 06:13:10 +0000 (16:13 +1000)]
ctdb-freeze: Fix a log message

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Use database specific information in wipe database
Amitay Isaacs [Tue, 15 Sep 2015 04:16:21 +0000 (14:16 +1000)]
ctdb-freeze: Use database specific information in wipe database

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Use single database transactions for global transactions
Amitay Isaacs [Tue, 15 Sep 2015 05:13:50 +0000 (15:13 +1000)]
ctdb-freeze: Use single database transactions for global transactions

This cascades the global transaction controls to individual database
transaction operations.  This ensures that the individual database state
is correctly set when processing global transaction controls.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Add controls for transactions on a single database
Amitay Isaacs [Wed, 9 Sep 2015 05:38:36 +0000 (15:38 +1000)]
ctdb-daemon: Add controls for transactions on a single database

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Rename ctdb_control_wipe_database to ctdb_control_transdb
Amitay Isaacs [Wed, 9 Sep 2015 05:02:49 +0000 (15:02 +1000)]
ctdb-daemon: Rename ctdb_control_wipe_database to ctdb_control_transdb

The same structure is required in new controls for database transactions.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: simplify code with TALLOC_FREE
Amitay Isaacs [Thu, 28 Aug 2014 06:59:52 +0000 (16:59 +1000)]
ctdb-freeze: simplify code with TALLOC_FREE

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Improve log message to indicate subsequent freeze operation
Amitay Isaacs [Thu, 28 Aug 2014 06:58:56 +0000 (16:58 +1000)]
ctdb-freeze: Improve log message to indicate subsequent freeze operation

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Use database specific mark/unmark routines
Amitay Isaacs [Mon, 14 Sep 2015 04:53:45 +0000 (14:53 +1000)]
ctdb-daemon: Use database specific mark/unmark routines

Instead of marking all the databases with priority, mark only the database
which is currently being processed.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Use database specific freeze check routine
Amitay Isaacs [Tue, 15 Sep 2015 04:01:49 +0000 (14:01 +1000)]
ctdb-daemon: Use database specific freeze check routine

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-locking: Add mark/unmark functions for a single database
Amitay Isaacs [Thu, 10 Sep 2015 03:24:43 +0000 (13:24 +1000)]
ctdb-locking: Add mark/unmark functions for a single database

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Use single database freeze/thaw code for existing controls
Amitay Isaacs [Thu, 28 Aug 2014 05:28:34 +0000 (15:28 +1000)]
ctdb-freeze: Use single database freeze/thaw code for existing controls

This changes the locking behaviour when the databases are frozen.
Instead of a single lock helper locking all databases with a priority,
a lock helper is launched for every database.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Move destructor closer to where it is used
Amitay Isaacs [Thu, 28 Aug 2014 05:30:39 +0000 (15:30 +1000)]
ctdb-freeze: Move destructor closer to where it is used

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>