samba.git
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>
8 years agoctdb-daemon: Add controls to freeze/thaw a single database
Amitay Isaacs [Tue, 5 Aug 2014 04:16:29 +0000 (14:16 +1000)]
ctdb-daemon: Add controls to freeze/thaw a single database

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Avoid the use of ctdb->freeze_handle variable
Amitay Isaacs [Tue, 15 Sep 2015 02:22:17 +0000 (12:22 +1000)]
ctdb-daemon: Avoid the use of ctdb->freeze_handle variable

These variables are used for state information related to freezing
databases.  Instead use the API functions to check if the databases
are frozen.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-daemon: Avoid the use of ctdb->freeze_mode variable
Amitay Isaacs [Thu, 21 Aug 2014 02:32:02 +0000 (12:32 +1000)]
ctdb-daemon: Avoid the use of ctdb->freeze_mode variable

Use ctdb->freeze_mode only in ctdb_freeze.c and use the functions to
check if databases are frozen everywhere else.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Refactor code to check if databases are frozen
Amitay Isaacs [Thu, 21 Aug 2014 02:26:58 +0000 (12:26 +1000)]
ctdb-freeze: Refactor code to check if databases are frozen

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-call: Convert pending calls list to per database list
Amitay Isaacs [Tue, 5 Aug 2014 04:42:00 +0000 (14:42 +1000)]
ctdb-call: Convert pending calls list to per database list

The pending calls are migration requests received from clients (over unix
domain socket) which are under processing.  After a recovery is finished,
any requests which are under processing will be dropped since they do
not belong to the current generation.  All the pending call requests
are resent with new generation to restart record migrations.

This is in preparation for parallel database recovery.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Use ctdb_db_iterator to commit transaction on databases
Amitay Isaacs [Tue, 5 Aug 2014 07:13:22 +0000 (17:13 +1000)]
ctdb-freeze: Use ctdb_db_iterator to commit transaction on databases

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Use ctdb_db_iterator to start transaction on databases
Amitay Isaacs [Tue, 5 Aug 2014 07:02:28 +0000 (17:02 +1000)]
ctdb-freeze: Use ctdb_db_iterator to start transaction on databases

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Use ctdb_db_iterator to cancel transaction on databases
Amitay Isaacs [Tue, 5 Aug 2014 07:02:07 +0000 (17:02 +1000)]
ctdb-freeze: Use ctdb_db_iterator to cancel transaction on databases

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Use ctdb_db_prio_iterator to cancel transaction on databases
Amitay Isaacs [Tue, 5 Aug 2014 06:23:21 +0000 (16:23 +1000)]
ctdb-freeze: Use ctdb_db_prio_iterator to cancel transaction on databases

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-locking: Add ctdb_db_iterator to iterate through all databases
Amitay Isaacs [Tue, 5 Aug 2014 06:49:06 +0000 (16:49 +1000)]
ctdb-locking: Add ctdb_db_iterator to iterate through all databases

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-locking: Expose ctdb_db_prio_iterator function
Amitay Isaacs [Tue, 5 Aug 2014 06:45:34 +0000 (16:45 +1000)]
ctdb-locking: Expose ctdb_db_prio_iterator function

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-locking: Rename ctdb_db_iterator to ctdb_db_prio_iterator
Amitay Isaacs [Tue, 5 Aug 2014 06:43:11 +0000 (16:43 +1000)]
ctdb-locking: Rename ctdb_db_iterator to ctdb_db_prio_iterator

This iterator only iterates through databases of specified priority.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-locking: Remove unused priority argument from db_handler_t
Amitay Isaacs [Tue, 5 Aug 2014 06:37:43 +0000 (16:37 +1000)]
ctdb-locking: Remove unused priority argument from db_handler_t

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Remove commented test code
Amitay Isaacs [Tue, 5 Aug 2014 06:23:47 +0000 (16:23 +1000)]
ctdb-freeze: Remove commented test code

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agoctdb-freeze: Do an early exit if freeze is pending
Amitay Isaacs [Tue, 5 Aug 2014 05:35:57 +0000 (15:35 +1000)]
ctdb-freeze: Do an early exit if freeze is pending

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
8 years agos3:smbd: pass expected_seq_low to smbd_initialize_smb2
Ralph Boehme [Wed, 7 Oct 2015 05:55:44 +0000 (06:55 +0100)]
s3:smbd: pass expected_seq_low to smbd_initialize_smb2

This is in preparation of multi-channel connection passing. This commit
should have been part of 1bb46da.

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Wed Oct  7 11:29:11 CEST 2015 on sn-devel-104

8 years agoChange the libreadline word-break character set to only space, TAB and NL so that...
Richard Sharpe [Fri, 18 Sep 2015 23:19:54 +0000 (16:19 -0700)]
Change the libreadline word-break character set to only space, TAB and NL so that we can attempt to do tab completion across backslashes.

This turned out to be all that was needed to enable cd to handle multiple
directory levels.

Signed-off-by: Richard Sharpe <rsharpe@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Wed Oct  7 04:16:24 CEST 2015 on sn-devel-104

8 years agos3:smb3: rename smbd_smb2_first_negprot and pass expected seq_low
Ralph Boehme [Sun, 27 Sep 2015 00:01:47 +0000 (02:01 +0200)]
s3:smb3: rename smbd_smb2_first_negprot and pass expected seq_low

This is in preperation of connection passing where we have to set
seq_low to the mid from the negprot we've handed over.

Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>

Signed-off-by: Ralph Boehme <slow@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Wed Oct  7 00:54:34 CEST 2015 on sn-devel-104

8 years agos3:smbd: add expected_seq_low arg to smbd_initialize_smb2
Ralph Boehme [Sat, 26 Sep 2015 23:58:46 +0000 (01:58 +0200)]
s3:smbd: add expected_seq_low arg to smbd_initialize_smb2

This is in preparation of connection passing for multichannel where we
have to set seq_low to the mid of the passed negprot.

Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>

Signed-off-by: Ralph Boehme <slow@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
8 years agos4: fix linking smbtorture on Solaris.
Tom Schulz [Mon, 5 Oct 2015 20:19:49 +0000 (22:19 +0200)]
s4: fix linking smbtorture on Solaris.

Don't test getgrouplist if we do not have it.

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

Signed-off-by: Tom Schulz <schulz@adi.com>
Reviewed-by: Michael Adam <obnox@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Tue Oct  6 19:15:22 CEST 2015 on sn-devel-104

8 years agovfs_fruit: return value of ad_pack in vfs_fruit.c
Ralph Boehme [Sun, 27 Sep 2015 10:11:31 +0000 (12:11 +0200)]
vfs_fruit: return value of ad_pack in vfs_fruit.c

ad_pack() in vfs_fruit.c returns false on failure and 0 on success -
i.e. return value is interpreted as success even when it fails.

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Uri Simchoni <uri@samba.org>
Autobuild-User(master): Uri Simchoni <uri@samba.org>
Autobuild-Date(master): Tue Oct  6 16:14:42 CEST 2015 on sn-devel-104

8 years agolib: Fix CID 1128553 Unchecked return value from library
Volker Lendecke [Tue, 6 Oct 2015 07:57:59 +0000 (09:57 +0200)]
lib: Fix CID 1128553 Unchecked return value from library

At the same time, avoid chmod in favor of fchmod

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Tue Oct  6 13:12:48 CEST 2015 on sn-devel-104

8 years agolib: Fix CID 1325733 Uninitialized scalar variable
Volker Lendecke [Tue, 6 Oct 2015 07:54:19 +0000 (09:54 +0200)]
lib: Fix CID 1325733 Uninitialized scalar variable

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
8 years agos3:ctdbd_conn: make sure we destroy tevent_fd before closing the socket
Stefan Metzmacher [Mon, 5 Oct 2015 13:57:42 +0000 (15:57 +0200)]
s3:ctdbd_conn: make sure we destroy tevent_fd before closing the socket

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

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
8 years agolib: Pass sockname and timeout to ctdbd_probe()
Volker Lendecke [Fri, 25 Sep 2015 23:52:58 +0000 (16:52 -0700)]
lib: Pass sockname and timeout to ctdbd_probe()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Sat Oct  3 03:04:39 CEST 2015 on sn-devel-104

8 years agolib: Pass sockname and timeout to ctdbd_messaging_connection
Volker Lendecke [Fri, 25 Sep 2015 23:49:33 +0000 (16:49 -0700)]
lib: Pass sockname and timeout to ctdbd_messaging_connection

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Move lp_ctdbd_socket() to cluster_support.c
Volker Lendecke [Thu, 1 Oct 2015 10:28:21 +0000 (12:28 +0200)]
lib: Move lp_ctdbd_socket() to cluster_support.c

There we have a #ifdef CTDB_SOCKET anyway

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Pass parameters to ctdbd_init_connection()
Volker Lendecke [Fri, 25 Sep 2015 23:09:23 +0000 (16:09 -0700)]
lib: Pass parameters to ctdbd_init_connection()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Store sockname in ctdbd_connection
Volker Lendecke [Fri, 25 Sep 2015 22:49:16 +0000 (15:49 -0700)]
lib: Store sockname in ctdbd_connection

We'll need it in ctdbd_traverse()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Remove temporary ctdb_connection in ctdb_control
Volker Lendecke [Fri, 25 Sep 2015 21:39:41 +0000 (14:39 -0700)]
lib: Remove temporary ctdb_connection in ctdb_control

I can just assume this is a bad hack for a condition that should have been
fixed in a different way. Today we pretty much expect a messaging_context to be
properly initialized everywhere, and this includes a ctdb connection.

If something later fails due to this commit, we need to do a
messaging_init before the offending call

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Store ctdb_timeout in ctdb_connection
Volker Lendecke [Fri, 25 Sep 2015 21:36:35 +0000 (14:36 -0700)]
lib: Store ctdb_timeout in ctdb_connection

This lifts the call to lp_ctdb_timeout() up

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agolib: Lift lp_ctdbd_socket() call up one level
Volker Lendecke [Fri, 25 Sep 2015 21:32:09 +0000 (14:32 -0700)]
lib: Lift lp_ctdbd_socket() call up one level

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
8 years agokerberos: make sure we only use prompter type when available.
Günther Deschner [Fri, 2 Oct 2015 02:23:59 +0000 (04:23 +0200)]
kerberos: make sure we only use prompter type when available.

We also verified that we cannot simply remove the prompter as several older
versions of Heimdal would crash.

Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Günther Deschner <gd@samba.org>
Autobuild-Date(master): Fri Oct  2 07:29:43 CEST 2015 on sn-devel-104