[SCM] Samba Shared Repository - branch master updated
Amitay Isaacs
amitay at samba.org
Wed Oct 7 15:56:03 UTC 2015
The branch, master has been updated
via 0101748 ctdb-recoverd: Always check for recmaster before doing recovery
via 3cf93d9 ctdb-recoverd: Get rid of connected-ness comparison in election
via fbd9c9f ctdb-recoverd: Do not freeze databases for election
via ffff66b ctdb-call: Improve a log message
via e6ff365 ctdb-recoverd: Add code for parallel database recovery
via cbfabd8 ctdb-daemon: Add parallel database recovery capability
via f0613ac ctdb-daemon: Use a define for default capabilities
via 4b39a77 ctdb-recoverd: Update flags on all nodes before database recovery
via 9843363 ctdb-recoverd: Update capabilities before the database recovery
via 14cacd2 ctdb-recovery: Factor out existing database recovery code
via 9514319 ctdb-recoverd: Add parallel database recovery helper
via b04c48d ctdb-client: Add client API for new database controls
via 81ac247 ctdb-protocol: Add controls for parallel DB recovery
via c6a50b9 ctdb-client: Add new client API implementation
via 34a6c99 ctdb-protocol: Add ctdb protocol serialization routines
via 8b45bad ctdb-include: Remove unused structure definitions
via 54da5c6 ctdb-common: Add logging utilities
via 1543eed ctdb-common: Add communication endpoint abstraction
via e01c0ee ctdb-common: Add packet write abstraction
via c77d3bb ctdb-common: Add packet read abstraction
via facd3c8 ctdb-packaging: Package public library and header for tevent-unix-util
via 606b909 ctdb-build: Placeholder for public headers from lib/util
via 670db6a lib/util: Create a new library for tevent_unix.c
via 9c16fe4 ctdb-build: Set PKGCONFIGDIR for public libraries in standalone build
via 100917b ctdb-packaging: Install header files in ctdb subdirectory
via b25c113 ctdb-daemon: Use reqid abstraction
via 9fd4d07 ctdb-common: Add request id abstraction
via a7ea6b0 ctdb-include: Remove unused definition
via 7c6115e ctdb-daemon: whitespace fix
via 9d75bf3 ctdb-daemon: formatting fix
via 62f1e25 ctdb-daemon: Replace ctdb_message with srvid abstraction
via 6272ef0 ctdb-common: Add srvid abstraction
via e5592f9 ctdb-common: Add db_hash abstraction
via acf5ebf ctdb-daemon: whitespace fix
via 6672dee ctdb-daemon: formatting fix
via ba56d85 ctdb-daemon: Remove ctdb from traverse_callback
via 3f287ec ctdb-build: Do not split ctdb-system subsystem
via 90b633e ctdb-build: Do not mark ctdb private headers public
via 42f7722 ctdb-daemon: Remove freeze requirement for updating vnnmap
via 3cbd040 ctdb-daemon: Add a check for database generation consistency
via 0ff90f4 ctdb-daemon: Check packet generation against database generation
via d701072 ctdb-call: Delete old defer queue if recovery occurs
via 3d11efe ctdb-daemon: Use database generation in packet headers for database requests
via 1df2594 ctdb-daemon: Introduce per database generation
via b81d4cc ctdb-freeze: Use individual database freeze in blocking freeze
via 5d9dd4d ctdb-freeze: Ensure all databases get frozen during freeze
via 8a5039d ctdb-freeze: Make function ctdb_start_freeze static
via b4357a7 ctdb-banning: Do not freeze databases on ban in the daemon
via fafd35b ctdb-freeze: Fix a log message
via d14ff2d ctdb-freeze: Use database specific information in wipe database
via 8580562 ctdb-freeze: Use single database transactions for global transactions
via 3d325e7 ctdb-daemon: Add controls for transactions on a single database
via 4f155e7 ctdb-daemon: Rename ctdb_control_wipe_database to ctdb_control_transdb
via 9f779f1 ctdb-freeze: simplify code with TALLOC_FREE
via 979f1c5 ctdb-freeze: Improve log message to indicate subsequent freeze operation
via 66c7bcc ctdb-daemon: Use database specific mark/unmark routines
via e0fa182 ctdb-daemon: Use database specific freeze check routine
via e170bd4 ctdb-locking: Add mark/unmark functions for a single database
via d139f87 ctdb-freeze: Use single database freeze/thaw code for existing controls
via fd7ceaf ctdb-freeze: Move destructor closer to where it is used
via 5447864 ctdb-daemon: Add controls to freeze/thaw a single database
via 7afabb1 ctdb-daemon: Avoid the use of ctdb->freeze_handle variable
via 8c58c73 ctdb-daemon: Avoid the use of ctdb->freeze_mode variable
via 056c44f ctdb-freeze: Refactor code to check if databases are frozen
via 6a212d1 ctdb-call: Convert pending calls list to per database list
via 2116c55 ctdb-freeze: Use ctdb_db_iterator to commit transaction on databases
via bc9a685 ctdb-freeze: Use ctdb_db_iterator to start transaction on databases
via 4576188 ctdb-freeze: Use ctdb_db_iterator to cancel transaction on databases
via 74f7eeb ctdb-freeze: Use ctdb_db_prio_iterator to cancel transaction on databases
via fb23760 ctdb-locking: Add ctdb_db_iterator to iterate through all databases
via ecb858f ctdb-locking: Expose ctdb_db_prio_iterator function
via b1f4680 ctdb-locking: Rename ctdb_db_iterator to ctdb_db_prio_iterator
via 8df0916 ctdb-locking: Remove unused priority argument from db_handler_t
via b15a65e ctdb-freeze: Remove commented test code
via 036203e ctdb-freeze: Do an early exit if freeze is pending
from 6d37cd3 s3:smbd: pass expected_seq_low to smbd_initialize_smb2
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 01017482876defa74137295fa08ed7f27fc12f61
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Oct 6 17:31:41 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
Autobuild-User(master): Amitay Isaacs <amitay at samba.org>
Autobuild-Date(master): Wed Oct 7 17:55:05 CEST 2015 on sn-devel-104
commit 3cf93d91361191a7accdf0ddf5e811212e0a5ca2
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Oct 6 14:46:48 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit fbd9c9fd2f9a4e3e4cf03af574b322752670d632
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Oct 6 11:52:06 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit ffff66b011131c16c369b397d6fcdd5b75a6db4e
Author: Amitay Isaacs <amitay at gmail.com>
Date: Mon Sep 21 17:12:25 2015 +1000
ctdb-call: Improve a log message
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit e6ff36506c820523ab23b3749227bf6df6218d76
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Sep 17 16:22:38 2015 +1000
ctdb-recoverd: Add code for parallel database recovery
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit cbfabd8104f56599d0b1f0a2f17d5154144a9341
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Sep 17 16:14:51 2015 +1000
ctdb-daemon: Add parallel database recovery capability
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit f0613ac4f7b3d3721750b7ee187a40a8a185a74e
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Sep 17 16:13:55 2015 +1000
ctdb-daemon: Use a define for default capabilities
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 4b39a7706f910c2830e4869b5e6363c45fbb7804
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Sep 17 17:10:15 2015 +1000
ctdb-recoverd: Update flags on all nodes before database recovery
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 9843363629972f162f923e759c6060a712fac2d2
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Sep 17 16:07:37 2015 +1000
ctdb-recoverd: Update capabilities before the database recovery
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 14cacd2925a77a1f45b42ad102ce1eb9448e4d7c
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Sep 17 16:00:47 2015 +1000
ctdb-recovery: Factor out existing database recovery code
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 951431910dc6d00815c19e087bc2546b1daa591b
Author: Amitay Isaacs <amitay at gmail.com>
Date: Mon Jun 29 14:56:53 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit b04c48d2f5f0a5e64ccf75e7773b880c521ffef3
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Sep 9 12:29:54 2015 +1000
ctdb-client: Add client API for new database controls
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 81ac247c10c362b643c2b3ce57df4fe6ecae78dd
Author: Amitay Isaacs <amitay at gmail.com>
Date: Sat Aug 1 01:47:22 2015 +1000
ctdb-protocol: Add controls for parallel DB recovery
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit c6a50b97d4c91967c480e7077b66e149bc38dcf4
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Apr 15 00:14:25 2015 +1000
ctdb-client: Add new client API implementation
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 34a6c99776cd50dfa4f6c2e02a6439d6d59b045e
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Apr 14 17:20:05 2015 +1000
ctdb-protocol: Add ctdb protocol serialization routines
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 8b45badfdaa8d9b618d551fcbbe8a2f7d680c4f9
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Apr 14 11:42:45 2015 +1000
ctdb-include: Remove unused structure definitions
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 54da5c6603059709529d50d4f5c5c39373ca4216
Author: Amitay Isaacs <amitay at gmail.com>
Date: Sat Aug 1 22:36:04 2015 +1000
ctdb-common: Add logging utilities
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 1543eedb8feaa85336216aa22df2145522425184
Author: Amitay Isaacs <amitay at gmail.com>
Date: Sat Apr 4 20:23:44 2015 +1100
ctdb-common: Add communication endpoint abstraction
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit e01c0eed38335e7b421ab4f79410f08ab1d31482
Author: Amitay Isaacs <amitay at gmail.com>
Date: Mon Apr 6 17:26:29 2015 +1000
ctdb-common: Add packet write abstraction
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit c77d3bb183a6e8109db8e4f5494adf899b01ccea
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Sep 2 22:32:50 2015 +1000
ctdb-common: Add packet read abstraction
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit facd3c864e0a2db29e6b838389111ba731e02078
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 8 17:58:54 2015 +1000
ctdb-packaging: Package public library and header for tevent-unix-util
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 606b909310fc49a5f793c5031372a08c3848685b
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 8 18:16:08 2015 +1000
ctdb-build: Placeholder for public headers from lib/util
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 670db6ac1d678babd25dd82c4467c0f094cfabc5
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 8 10:34:21 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 9c16fe43fc37d0804e5a0337726fccf4e1ab73f3
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 8 18:15:35 2015 +1000
ctdb-build: Set PKGCONFIGDIR for public libraries in standalone build
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 100917b169765821bc79ef322663948c5edd34ca
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 8 17:58:25 2015 +1000
ctdb-packaging: Install header files in ctdb subdirectory
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit b25c1135a74f5d61da00847149587835bc2102c9
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Mar 17 14:30:18 2015 +1100
ctdb-daemon: Use reqid abstraction
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 9fd4d07ca60e2e4a40662988ce8136efa6452ced
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Mar 17 13:29:44 2015 +1100
ctdb-common: Add request id abstraction
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit a7ea6b094e60a41e28df5a8f17b98bb3bd1058d9
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Mar 17 13:41:36 2015 +1100
ctdb-include: Remove unused definition
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 7c6115e11b2112f5b4003be862f709cc9ffea615
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Apr 8 14:41:59 2015 +1000
ctdb-daemon: whitespace fix
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 9d75bf3a9ffaa1e0cd25f7ada57f9eef7de614c3
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Apr 8 14:41:12 2015 +1000
ctdb-daemon: formatting fix
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 62f1e2579a6e97e7e33f68be779694d5eceb36c0
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Apr 8 14:38:26 2015 +1000
ctdb-daemon: Replace ctdb_message with srvid abstraction
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 6272ef0d09930ffbff43c6223ea35858d13efffa
Author: Amitay Isaacs <amitay at gmail.com>
Date: Mon Mar 16 23:25:27 2015 +1100
ctdb-common: Add srvid abstraction
Attempt to make common code independent and free from ctdb_context.
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit e5592f9fc018b4b22fbdba4f45526210f5f41692
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Mar 17 12:35:31 2015 +1100
ctdb-common: Add db_hash abstraction
A hash table implemented using in-memory tdb backend.
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit acf5ebfa906b226d7db2051c9716dd9091d7ecb7
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Apr 8 14:25:12 2015 +1000
ctdb-daemon: whitespace fix
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 6672deea13b663dd43e82df76a3152887ddac1dd
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Apr 8 14:25:01 2015 +1000
ctdb-daemon: formatting fix
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit ba56d852cb156585e34b758f3065df7adcdb73ba
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Apr 8 14:24:31 2015 +1000
ctdb-daemon: Remove ctdb from traverse_callback
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 3f287ec47934225be5a72e9c7bf51421d22895a6
Author: Amitay Isaacs <amitay at gmail.com>
Date: Mon Aug 3 15:38:32 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 90b633ea79291c85248f63493af64be7868763af
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Sep 30 11:38:52 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 42f772215178050a3f465440e79e1ec9bce0e34f
Author: Amitay Isaacs <amitay at gmail.com>
Date: Mon Sep 14 13:49:05 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 3cbd0409f398828ee6415229b3c23781405176ea
Author: Amitay Isaacs <amitay at gmail.com>
Date: Fri Sep 11 16:14:12 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 0ff90f4fac74e61192aff100b168e38ce0adfabb
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 15 16:50:19 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit d701072c3e2309019a729c908b28c6657b28a2ca
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Sep 23 14:47:58 2015 +1000
ctdb-call: Delete old defer queue if recovery occurs
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 3d11efe3c63c884ebb78c5488c565d9ab5afb963
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 15 16:50:19 2015 +1000
ctdb-daemon: Use database generation in packet headers for database requests
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 1df25943866e1644d0f48c8980c7eafdea0b6366
Author: Amitay Isaacs <amitay at gmail.com>
Date: Fri Sep 11 14:20:44 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit b81d4ccc770fc0f691fb87becd991350d91d2bd6
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Sep 17 12:57:51 2015 +1000
ctdb-freeze: Use individual database freeze in blocking freeze
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 5d9dd4d400296a4182dadc70cb4ddf9ca0681a60
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Sep 16 18:49:00 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 8a5039d96390742be5563e74b7e2778f7d388ed2
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Sep 16 18:23:23 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit b4357a79d916b1f8ade8fa78563fbef0ce670aa9
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Sep 16 18:20:31 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit fafd35b68f8af41095cb41cd604c27495fa2b6a1
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 15 16:13:10 2015 +1000
ctdb-freeze: Fix a log message
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit d14ff2d87e95c4c8c9faef800fc81b8c049d16da
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 15 14:16:21 2015 +1000
ctdb-freeze: Use database specific information in wipe database
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 858056263a0000663c0b50da6f080a845dc4d766
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 15 15:13:50 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 3d325e7fa1de48ec88487d31a657e6a876d2dd81
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Sep 9 15:38:36 2015 +1000
ctdb-daemon: Add controls for transactions on a single database
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 4f155e77a8210e43456239391c03a5804d01b828
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Sep 9 15:02:49 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 9f779f130fa275dcc43adcab03d4704663776dce
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Aug 28 16:59:52 2014 +1000
ctdb-freeze: simplify code with TALLOC_FREE
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 979f1c5ea116b8aac536ebe29d584730e8fe9a4b
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Aug 28 16:58:56 2014 +1000
ctdb-freeze: Improve log message to indicate subsequent freeze operation
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 66c7bcc777ff5cbc625da86384d8c29d34c66bf9
Author: Amitay Isaacs <amitay at gmail.com>
Date: Mon Sep 14 14:53:45 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit e0fa182d9362537f7081e215250ce2052a9a34c8
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 15 14:01:49 2015 +1000
ctdb-daemon: Use database specific freeze check routine
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit e170bd4f1b3fcf988867d1dd00b49e8813c6ca7f
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Sep 10 13:24:43 2015 +1000
ctdb-locking: Add mark/unmark functions for a single database
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit d139f87718e06aaae73652fdf52f2c1dd2dcbe99
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Aug 28 15:28:34 2014 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit fd7ceaf3ac59fc7dc70d34e81cfd75a171a2e6c0
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Aug 28 15:30:39 2014 +1000
ctdb-freeze: Move destructor closer to where it is used
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 5447864e5d31d433f9a54924f3bb01f1384620fd
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 14:16:29 2014 +1000
ctdb-daemon: Add controls to freeze/thaw a single database
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 7afabb1285f6778b5b2862e178315b03f54eb8ef
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 15 12:22:17 2015 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 8c58c7392fe342fb39fcaf81c2465762f1823b51
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Aug 21 12:32:02 2014 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 056c44fda3f3d84dc3eb9766e0ee04bdb6387ea5
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Aug 21 12:26:58 2014 +1000
ctdb-freeze: Refactor code to check if databases are frozen
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 6a212d13d046d9f3ff6a2423d55b24b8068498e3
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 14:42:00 2014 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 2116c55b08288b3c59613ed0d088eeba1c29d682
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 17:13:22 2014 +1000
ctdb-freeze: Use ctdb_db_iterator to commit transaction on databases
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit bc9a68592e15068332a915270c6ebdc46f4542d0
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 17:02:28 2014 +1000
ctdb-freeze: Use ctdb_db_iterator to start transaction on databases
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 457618888a80d3f5733a9e3dd41d3ab64ace4ae5
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 17:02:07 2014 +1000
ctdb-freeze: Use ctdb_db_iterator to cancel transaction on databases
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 74f7eebc7911a4ec5f6ee68266b027a661579c68
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 16:23:21 2014 +1000
ctdb-freeze: Use ctdb_db_prio_iterator to cancel transaction on databases
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit fb237608d7bdb3faf471a7be8a96176a42826811
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 16:49:06 2014 +1000
ctdb-locking: Add ctdb_db_iterator to iterate through all databases
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit ecb858f54831a439544c7d40051ce91d4103c746
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 16:45:34 2014 +1000
ctdb-locking: Expose ctdb_db_prio_iterator function
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit b1f468017750c4c91f80c5239a364546a1d35e72
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 16:43:11 2014 +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 at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 8df0916520f2cf938cbdece28d83c8a7b1824934
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 16:37:43 2014 +1000
ctdb-locking: Remove unused priority argument from db_handler_t
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit b15a65ecc8646f4bd65012005ee28d4aaf272836
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 16:23:47 2014 +1000
ctdb-freeze: Remove commented test code
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
commit 036203e02a4926d8d465a3f83f6bc565ae451483
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Aug 5 15:35:57 2014 +1000
ctdb-freeze: Do an early exit if freeze is pending
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
-----------------------------------------------------------------------
Summary of changes:
ctdb/client/client.h | 833 ++++++
ctdb/client/client_call.c | 177 ++
ctdb/client/client_connect.c | 310 ++
ctdb/client/client_control.c | 430 +++
ctdb/client/client_control_sync.c | 3118 ++++++++++++++++++++
ctdb/client/client_db.c | 2137 ++++++++++++++
ctdb/client/client_message.c | 227 ++
ctdb/client/client_message_sync.c | 195 ++
ctdb/client/client_private.h | 79 +
ctdb/client/client_util.c | 154 +
ctdb/client/ctdb_client.c | 92 +-
ctdb/common/comm.c | 404 +++
ctdb/common/comm.h | 101 +
ctdb/common/ctdb_message.c | 286 --
ctdb/common/ctdb_util.c | 49 +-
ctdb/common/db_hash.c | 268 ++
ctdb/common/db_hash.h | 159 +
ctdb/common/logging.c | 74 +
ctdb/common/logging.h | 39 +
ctdb/common/pkt_read.c | 190 ++
ctdb/common/pkt_read.h | 98 +
ctdb/common/pkt_write.c | 101 +
ctdb/common/pkt_write.h | 79 +
ctdb/common/reqid.c | 89 +
ctdb/common/reqid.h | 89 +
ctdb/common/srvid.c | 269 ++
ctdb/common/srvid.h | 115 +
ctdb/include/common/srvid.h | 1 +
ctdb/include/ctdb_client.h | 17 +-
ctdb/include/ctdb_private.h | 70 +-
ctdb/include/ctdb_protocol.h | 23 +-
ctdb/include/internal/includes.h | 1 +
ctdb/include/public/{ => util}/README.txt | 0
ctdb/packaging/RPM/ctdb.spec.in | 11 +-
.../ctdb_protocol.h => protocol/protocol.h} | 1104 ++++---
ctdb/protocol/protocol_api.h | 663 +++++
ctdb/protocol/protocol_call.c | 446 +++
ctdb/protocol/protocol_client.c | 2470 ++++++++++++++++
ctdb/protocol/protocol_control.c | 2087 +++++++++++++
ctdb/protocol/protocol_header.c | 73 +
ctdb/protocol/protocol_message.c | 383 +++
ctdb/protocol/protocol_packet.c | 44 +
ctdb/protocol/protocol_private.h | 274 ++
ctdb/protocol/protocol_types.c | 2519 ++++++++++++++++
ctdb/protocol/protocol_util.c | 114 +
ctdb/server/ctdb_banning.c | 23 +-
ctdb/server/ctdb_call.c | 121 +-
ctdb/server/ctdb_control.c | 38 +-
ctdb/server/ctdb_daemon.c | 51 +-
ctdb/server/ctdb_freeze.c | 829 +++++-
ctdb/server/ctdb_lock.c | 108 +-
ctdb/server/ctdb_ltdb_server.c | 12 +-
ctdb/server/ctdb_monitor.c | 12 +-
ctdb/server/ctdb_persistent.c | 7 +-
ctdb/server/ctdb_recover.c | 52 +-
ctdb/server/ctdb_recoverd.c | 545 ++--
ctdb/server/ctdb_recovery_helper.c | 1888 ++++++++++++
ctdb/server/ctdb_server.c | 21 +-
ctdb/server/ctdb_serverids.c | 3 +-
ctdb/server/ctdb_takeover.c | 9 +-
ctdb/server/ctdb_traverse.c | 11 +-
ctdb/server/ctdbd.c | 10 +-
ctdb/tests/cunit/comm_test_001.sh | 7 +
ctdb/tests/cunit/comm_test_002.sh | 24 +
ctdb/tests/cunit/db_hash_test_001.sh | 7 +
ctdb/tests/cunit/pkt_read_001.sh | 7 +
ctdb/tests/cunit/pkt_write_001.sh | 7 +
ctdb/tests/cunit/protocol_test_001.sh | 9 +
ctdb/tests/cunit/protocol_test_002.sh | 36 +
ctdb/tests/cunit/reqid_test_001.sh | 13 +
ctdb/tests/cunit/srvid_test_001.sh | 7 +
ctdb/tests/run_tests.sh | 2 +-
ctdb/tests/simple/scripts/local_daemons.bash | 1 +
ctdb/tests/src/comm_client_test.c | 207 ++
ctdb/tests/src/comm_server_test.c | 363 +++
ctdb/tests/src/comm_test.c | 260 ++
ctdb/tests/src/ctdb_bench.c | 90 +-
ctdb/tests/src/ctdb_fetch.c | 65 +-
ctdb/tests/src/ctdb_test.c | 7 +-
ctdb/tests/src/ctdb_test_stubs.c | 5 +-
ctdb/tests/src/ctdb_traverse.c | 4 +-
ctdb/tests/src/ctdbd_test.c | 5 +-
ctdb/tests/src/db_hash_test.c | 102 +
ctdb/tests/src/pkt_read_test.c | 242 ++
ctdb/tests/src/pkt_write_test.c | 370 +++
ctdb/tests/src/protocol_client_test.c | 2353 +++++++++++++++
ctdb/tests/src/protocol_types_test.c | 1278 ++++++++
ctdb/tests/src/reqid_test.c | 72 +
ctdb/tests/src/srvid_test.c | 78 +
ctdb/tools/ctdb.c | 22 +-
ctdb/wscript | 115 +-
lib/util/wscript_build | 15 +-
92 files changed, 28509 insertions(+), 1466 deletions(-)
create mode 100644 ctdb/client/client.h
create mode 100644 ctdb/client/client_call.c
create mode 100644 ctdb/client/client_connect.c
create mode 100644 ctdb/client/client_control.c
create mode 100644 ctdb/client/client_control_sync.c
create mode 100644 ctdb/client/client_db.c
create mode 100644 ctdb/client/client_message.c
create mode 100644 ctdb/client/client_message_sync.c
create mode 100644 ctdb/client/client_private.h
create mode 100644 ctdb/client/client_util.c
create mode 100644 ctdb/common/comm.c
create mode 100644 ctdb/common/comm.h
delete mode 100644 ctdb/common/ctdb_message.c
create mode 100644 ctdb/common/db_hash.c
create mode 100644 ctdb/common/db_hash.h
create mode 100644 ctdb/common/logging.c
create mode 100644 ctdb/common/logging.h
create mode 100644 ctdb/common/pkt_read.c
create mode 100644 ctdb/common/pkt_read.h
create mode 100644 ctdb/common/pkt_write.c
create mode 100644 ctdb/common/pkt_write.h
create mode 100644 ctdb/common/reqid.c
create mode 100644 ctdb/common/reqid.h
create mode 100644 ctdb/common/srvid.c
create mode 100644 ctdb/common/srvid.h
create mode 120000 ctdb/include/common/srvid.h
copy ctdb/include/public/{ => util}/README.txt (100%)
copy ctdb/{include/ctdb_protocol.h => protocol/protocol.h} (55%)
create mode 100644 ctdb/protocol/protocol_api.h
create mode 100644 ctdb/protocol/protocol_call.c
create mode 100644 ctdb/protocol/protocol_client.c
create mode 100644 ctdb/protocol/protocol_control.c
create mode 100644 ctdb/protocol/protocol_header.c
create mode 100644 ctdb/protocol/protocol_message.c
create mode 100644 ctdb/protocol/protocol_packet.c
create mode 100644 ctdb/protocol/protocol_private.h
create mode 100644 ctdb/protocol/protocol_types.c
create mode 100644 ctdb/protocol/protocol_util.c
create mode 100644 ctdb/server/ctdb_recovery_helper.c
create mode 100755 ctdb/tests/cunit/comm_test_001.sh
create mode 100755 ctdb/tests/cunit/comm_test_002.sh
create mode 100755 ctdb/tests/cunit/db_hash_test_001.sh
create mode 100755 ctdb/tests/cunit/pkt_read_001.sh
create mode 100755 ctdb/tests/cunit/pkt_write_001.sh
create mode 100755 ctdb/tests/cunit/protocol_test_001.sh
create mode 100755 ctdb/tests/cunit/protocol_test_002.sh
create mode 100755 ctdb/tests/cunit/reqid_test_001.sh
create mode 100755 ctdb/tests/cunit/srvid_test_001.sh
create mode 100644 ctdb/tests/src/comm_client_test.c
create mode 100644 ctdb/tests/src/comm_server_test.c
create mode 100644 ctdb/tests/src/comm_test.c
create mode 100644 ctdb/tests/src/db_hash_test.c
create mode 100644 ctdb/tests/src/pkt_read_test.c
create mode 100644 ctdb/tests/src/pkt_write_test.c
create mode 100644 ctdb/tests/src/protocol_client_test.c
create mode 100644 ctdb/tests/src/protocol_types_test.c
create mode 100644 ctdb/tests/src/reqid_test.c
create mode 100644 ctdb/tests/src/srvid_test.c
Changeset truncated at 500 lines:
diff --git a/ctdb/client/client.h b/ctdb/client/client.h
new file mode 100644
index 0000000..3f720fc
--- /dev/null
+++ b/ctdb/client/client.h
@@ -0,0 +1,833 @@
+/*
+ CTDB client code
+
+ Copyright (C) Amitay Isaacs 2015
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __CTDB_CLIENT_H__
+#define __CTDB_CLIENT_H__
+
+#include "protocol/protocol.h"
+#include "common/srvid.h"
+
+struct ctdb_client_context;
+struct ctdb_db_context;
+struct ctdb_record_handle;
+
+/* from client/client_connect.c */
+
+int ctdb_client_init(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ const char *sockpath, struct ctdb_client_context **ret);
+
+uint32_t ctdb_client_pnn(struct ctdb_client_context *client);
+
+void ctdb_client_wait(struct tevent_context *ev, bool *done);
+
+struct tevent_req *ctdb_recovery_wait_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client);
+
+bool ctdb_recovery_wait_recv(struct tevent_req *req, int *perr);
+
+/* from client/client_call.c */
+
+struct tevent_req *ctdb_client_call_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ struct ctdb_req_call *request);
+
+bool ctdb_client_call_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ struct ctdb_reply_call **reply, int *perr);
+
+
+/* from client/client_message.c */
+
+struct tevent_req *ctdb_client_message_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ uint32_t destnode,
+ struct ctdb_req_message *message);
+
+bool ctdb_client_message_recv(struct tevent_req *req, int *perr);
+
+int ctdb_client_message(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ uint32_t destnode, struct ctdb_req_message *message);
+
+int ctdb_client_set_message_handler(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ uint64_t srvid, srvid_handler_fn handler,
+ void *private_data);
+
+int ctdb_client_remove_message_handler(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ uint64_t srvid, void *private_data);
+
+/* from client/client_message_sync.c */
+
+int ctdb_message_recd_update_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct ctdb_public_ip *pubip);
+
+int ctdb_message_mem_dump(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct ctdb_srvid_message *msg);
+
+int ctdb_message_reload_nodes(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode);
+
+int ctdb_message_takeover_run(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct ctdb_srvid_message *msg);
+
+int ctdb_message_rebalance_node(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, uint32_t pnn);
+
+int ctdb_message_disable_takeover_runs(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode,
+ struct ctdb_disable_message *disable);
+
+int ctdb_message_disable_recoveries(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode,
+ struct ctdb_disable_message *disable);
+
+int ctdb_message_disable_ip_check(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, uint32_t timeout);
+
+/* from client/client_control.c */
+
+struct tevent_req *ctdb_client_control_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ uint32_t destnode,
+ struct timeval timeout,
+ struct ctdb_req_control *request);
+
+bool ctdb_client_control_recv(struct tevent_req *req, int *perr,
+ TALLOC_CTX *mem_ctx,
+ struct ctdb_reply_control **preply);
+
+struct tevent_req *ctdb_client_control_multi_send(
+ TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ uint32_t *pnn_list, int count,
+ struct timeval timeout,
+ struct ctdb_req_control *request);
+
+bool ctdb_client_control_multi_recv(struct tevent_req *req, int *perr,
+ TALLOC_CTX *mem_ctx, int **perr_list,
+ struct ctdb_reply_control ***preply);
+
+int ctdb_client_control_multi_error(uint32_t *pnn_list, int count,
+ int *err_list, uint32_t *pnn);
+
+int ctdb_client_control(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ uint32_t destnode,
+ struct timeval timeout,
+ struct ctdb_req_control *c,
+ struct ctdb_reply_control **preply);
+
+int ctdb_client_control_multi(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ uint32_t *pnn_list, int count,
+ struct timeval timeout,
+ struct ctdb_req_control *request,
+ int **perr,
+ struct ctdb_reply_control ***preply);
+
+/* from client/client_control_sync.c */
+
+int ctdb_ctrl_process_exists(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ pid_t pid, int *status);
+
+int ctdb_ctrl_statistics(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_statistics **stats);
+
+int ctdb_ctrl_ping(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ int *num_clients);
+
+int ctdb_ctrl_getdbpath(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t db_id, const char **db_path);
+
+int ctdb_ctrl_getvnnmap(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_vnn_map **vnnmap);
+
+int ctdb_ctrl_getdebug(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t *loglevel);
+
+int ctdb_ctrl_setdebug(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t loglevel);
+
+int ctdb_ctrl_get_dbmap(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_dbid_map **dbmap);
+
+int ctdb_ctrl_pull_db(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client, int destnode,
+ struct timeval timeout, struct ctdb_pulldb *pulldb,
+ struct ctdb_rec_buffer **recbuf);
+
+int ctdb_ctrl_push_db(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client, int destnode,
+ struct timeval timeout, struct ctdb_rec_buffer *recbuf);
+
+int ctdb_ctrl_get_recmode(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ int *recmode);
+
+int ctdb_ctrl_set_recmode(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ int recmode);
+
+int ctdb_ctrl_statistics_reset(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout);
+
+int ctdb_ctrl_db_attach(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ const char *db_name, uint32_t tdb_flags,
+ uint32_t *db_id);
+
+int ctdb_ctrl_traverse_start(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_traverse_start *traverse);
+
+int ctdb_ctrl_register_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint64_t srvid);
+
+int ctdb_ctrl_deregister_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint64_t srvid);
+
+int ctdb_ctrl_get_dbname(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t db_id, const char **db_name);
+
+int ctdb_ctrl_enable_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t db_id);
+
+int ctdb_ctrl_update_seqnum(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t db_id);
+
+int ctdb_ctrl_dump_memory(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ const char **mem_str);
+
+int ctdb_ctrl_get_pid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ pid_t *pid);
+
+int ctdb_ctrl_get_recmaster(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t *recmaster);
+
+int ctdb_ctrl_set_recmaster(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t recmaster);
+
+int ctdb_ctrl_freeze(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ int priority);
+
+int ctdb_ctrl_thaw(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ int priority);
+
+int ctdb_ctrl_get_pnn(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t *pnn);
+
+int ctdb_ctrl_shutdown(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout);
+
+int ctdb_ctrl_get_monmode(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ int *mon_mode);
+
+int ctdb_ctrl_tcp_add(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_connection *conn);
+
+int ctdb_ctrl_tcp_remove(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_connection *conn);
+
+int ctdb_ctrl_set_tunable(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_tunable *tunable);
+
+int ctdb_ctrl_get_tunable(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ const char *var, uint32_t *value);
+
+int ctdb_ctrl_list_tunables(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_var_list **var_list);
+
+int ctdb_ctrl_modify_flags(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t pnn, uint32_t old_flags,
+ uint32_t new_flags);
+
+int ctdb_ctrl_get_all_tunables(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_tunable_list **tun_list);
+
+int ctdb_ctrl_kill_tcp(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_connection *conn);
+
+int ctdb_ctrl_get_tcp_tickle_list(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ ctdb_sock_addr *addr,
+ struct ctdb_tickle_list **tickles);
+
+int ctdb_ctrl_set_tcp_tickle_list(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_tickle_list *tickles);
+
+int ctdb_ctrl_register_server_id(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_client_id *cid);
+
+int ctdb_ctrl_unregister_server_id(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_client_id *cid);
+
+int ctdb_ctrl_check_server_id(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_client_id *cid);
+
+int ctdb_ctrl_get_server_id_list(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_client_id_map **cid_map);
+
+int ctdb_ctrl_db_attach_persistent(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ const char *db_name, int tdb_flags,
+ uint32_t *db_id);
+
+int ctdb_ctrl_send_gratuitous_arp(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_addr_info *addr_info);
+
+int ctdb_ctrl_transaction_start(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t tid);
+
+int ctdb_ctrl_transaction_commit(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t tid);
+
+int ctdb_ctrl_wipe_database(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t db_id, uint32_t tid);
+
+int ctdb_ctrl_uptime(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_uptime **uptime);
+
+int ctdb_ctrl_start_recovery(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout);
+
+int ctdb_ctrl_end_recovery(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout);
+
+int ctdb_ctrl_reload_nodes_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout);
+
+int ctdb_ctrl_enable_monitor(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout);
+
+int ctdb_ctrl_disable_monitor(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout);
+
+int ctdb_ctrl_add_public_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_addr_info *addr_info);
+
+int ctdb_ctrl_del_public_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_addr_info *addr_info);
+
+int ctdb_ctrl_run_eventscripts(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ const char *event);
+
+int ctdb_ctrl_get_capabilities(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ uint32_t *caps);
+
+int ctdb_ctrl_release_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_public_ip *pubip);
+
+int ctdb_ctrl_takeover_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_public_ip *pubip);
+
+int ctdb_ctrl_get_public_ips(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_public_ip_list **pubip_list);
+
+int ctdb_ctrl_get_nodemap(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_node_map **nodemap);
+
+int ctdb_ctrl_get_event_script_status(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ enum ctdb_event event,
+ struct ctdb_script_list **slist);
+
+int ctdb_ctrl_traverse_kill(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
+ int destnode, struct timeval timeout,
+ struct ctdb_traverse_start *traverse);
+
+int ctdb_ctrl_get_reclock_file(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct ctdb_client_context *client,
--
Samba Shared Repository
More information about the samba-cvs
mailing list