| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |\ \
| | | |
| | | |
| | | | |
(This used to be ctdb commit 718ddc2264c28185fcddbc9cb0c7137d198a43a7)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Monitoring could be off at the beginning of the test.
Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 6a33a7715067175869ea2f3f15b64c3371079a6b)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 4cdf3b9adc7edfd80a2901ef8457ae67aab0829a)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This should help with log cross-checking.
Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit c0a916c40c623c0aa8245526283a064dbeea4b57)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If there's a chance that "ctdb status -Y" can return 0 but print
garbage then this function might return a false positive.
So, we do 2 things:
* Redirect stderr to >/dev/null rather than looking at it. This
minimises the chance that we will see garbage.
* Since we need at least 1 good line to decide the cluster is healthy,
we sanity check each line to esnure it starts with :[0-9].
Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit d4189c7c3fceaa833f9f0446a2b06af6fed714ec)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also ensure that $CTDB is set by default it to "ctdb".
Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 8222fef1e61836b9bfd406205f9ffb9396aa7480)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This currently does "onnode any ... wait_until ...". If ctdbd is
being shutdown on a node then that node might be chosen anyway, if it
is asked early enough. Then we'll loop on that node but our ctdb
client command may always fail, causing a timeout rather than the
expected behaviour.
This puts the loop on the outside of the "onnode any" so that if the
"wrong" node is chosen initially then on the next iteration the choice
can be remade.
Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit a88ee78686bd5aa2b789f5959e0562315a13525d)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit 5bb6b28ab7b45b7242d100ae8f1483d02e1d0d1d)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
that we are removing these and migrating to store the data inside ctdbd or persistent databases
(This used to be ctdb commit 230bec8d375b778b20ff3cb7f9864c26323997f3)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
the clusterwide persistent data associated with the lock manager and
statd notifications.
Use persistent databases to store this data instead of a shared directory.
(This used to be ctdb commit fc0678d351187cfa4c71123f97c0f493aacd5d16)
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is called everytime a reallocation is performed.
While STARTRECOVERY/RECOVERED events are only called when
we do ipreallocation as part of a full database/cluster recovery,
this new event can be used to trigger on when we just do a light
failover due to a node becomming unhealthy.
I.e. situations where we do a failover but we do not perform a full
cluster recovery.
Use this to trigger for natgw so we select a new natgw master node
when failover happens and not just when cluster rebuilds happen.
(This used to be ctdb commit 7f4c591388adae20e98984001385cba26598ec67)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This database can be used, as an option, to store
the public address assignment instead of editing the /etc/ctdb/public-addresses file manually.
This configuration is stored in one record per key, with a key-name of
public-addresses:node#<pnn>
where <pnn> is the node number.
The content of this record is the same syntax as the /etc/ctdb/public-addresses file.
When ctdbd starts, if this key exist and contains data. It is extracted from the database and compared with the normal file /etc/ctdb/public-addresses.
If the content differs, the config database "wins" and is used to overwrite/update the /etc/ctdb/public-addresses file, after which ctdbd is restarted.
The main benefit with this option is that it can be used to update the public address configuration for nodes that are offline/unreachable by updating their configuration in the persistent database.
Once the offline node is available again, it will resync its databases with the rest of the cluster, find out that the config has changed, apply the changes and restart ctdbd automatically.
The command to store the public address configuration for a node into the persistent database is :
ctdb pstore config.tdb public-addresses:node#<pnn> <filename>
where <pnn> is the node# we wish to update the config for, and <filename> is a file containing the new content for that nodes public address configuration.
(This used to be ctdb commit 292d7435a360efd7f15a7a99f658a605e07c0a81)
|
| | |
| | |
| | |
| | |
| | |
| | | |
fix a couple of incorrect settings for "auto-all" for a few of the commands as well.
(This used to be ctdb commit 9999771105d7105efaa232fe2842e21e66f78706)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
tdb file.
the command automatically strips off the initial ctdb header off the record so it can only be used on ctdb managed tdb files, not on normal tdb files.
(This used to be ctdb commit c3a816e5174abefb5155f65d8faad7b1e831e481)
|
| | |
| | |
| | |
| | |
| | |
| | | |
mode bits
(This used to be ctdb commit 87160c91bfd87e8b9c510dacbf00e5aa481d2305)
|
| | |
| | |
| | |
| | |
| | |
| | | |
so that we can read from databases during this event
(This used to be ctdb commit 6c93bf5a1219617bfb39b093aee3200c74c2c61a)
|
| | |
| | |
| | |
| | |
| | |
| | | |
as a file to store the record in.
(This used to be ctdb commit 6d7e62f5401f0647a519fe0b74ec628418e33231)
|
| | |
| | |
| | |
| | |
| | |
| | | |
"ctdb pstore <db> <key> <file containing possibly binary data>"
(This used to be ctdb commit 14184ab7c80a3ef16c54b4ab168fd635b7add445)
|
| | |
| | |
| | |
| | | |
(This used to be ctdb commit 0865f0e6ef671396aa862f6a79a48a4891d72122)
|
| |/
|/|
| |
| |
| |
| | |
a persistent database.
(This used to be ctdb commit 3bef831b96ce8b40457ed4de527f0d62fa6a5b00)
|
| |
| |
| |
| |
| |
| |
| |
| | |
so that the dependencies are right
or else the dependencies all end up in the devel package and not the main
ctdb package
(This used to be ctdb commit 6e4347eb8e62c28987820f6e58626271c900b011)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This can cause ctdbd to spin at 100% in the eventsystem,
creating a timed event that will immediately trigger again
and again.
On uniprocessors this cause the eventscript we are actually waiting for to
basically become cpu starved and never complete.
(This used to be ctdb commit 92c8408fba957a8ded13f7e285da290502735234)
|
| |
| |
| |
| |
| |
| |
| | |
revert the defauls case back to only showing the ip and node
and only display the extra info if -v verbose output is requested
(This used to be ctdb commit 6488651aa7e105c57324f4a300760a010d098fbb)
|
| |
| |
| |
| | |
(This used to be ctdb commit 96dd9f40f9464c3d9de98f1323568724a1e31dc9)
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
port.
Default is to continue to show all tickles, but if a second argument
is given, only tickles for that port will be shown.
(This used to be ctdb commit 5b985eb2cbbb92bf6ccfcacd633d793bcd4e3ec1)
|
| |
| |
| |
| |
| |
| | |
Use talloc_strdup_append() instead
(This used to be ctdb commit e41581347af5ef26d429d38ed48fa46244f0dbfc)
|
| |
| |
| |
| |
| |
| |
| | |
so set the TALLOC_DEPRECATED sympol to allow use of this call
from ctdb_client.c
(This used to be ctdb commit 3afa5d945a56952a7f211af068d671945de960e5)
|
|\ \
| | |
| | |
| | | |
(This used to be ctdb commit 13e58d92f5f1723e850a82ae030d0ca57e89b1ee)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This means we can distinguish which child is logging, esp. via syslog where we have no pid.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit 68b3761a0874429b90731741f0531f76dcfbb081)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
After 5 attempts to send a RST to a client without any response, we free
"con"; this is done during a traverse. This frees the node we are walking
through (the node is made a child of "con" down in rb_tree.c's
trbt_create_node() (Valgrind would catch this, as Martin confirmed).
So, we create a temporary parent and reparent onto that; then we free
that parent after the traverse, thus deleting the unwanted nodes.
CQ:S1019041
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit 08f7f85477610a4916c1ec866aa467b28f1bbec3)
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The existing code wasn't working as designed in the start event. It
should work here.
BZ: 62613
Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit aeb70c7e7822854eb87873a5c7783e27e6e72318)
|
|\ \
| | |
| | |
| | | |
(This used to be ctdb commit dc301b324d2c14a2425a965c076113c4fe97903e)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We shouldn't even think about vacuuming when we've frozen the database
(which is earlier than when we set CTDB_RECOVERY_ACTIVE)
CQ:S1018154 & S1018349
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit d8df6835a931082af232c4b94f1dede6f16169f9)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Martin Schwenke discovered that 517f05e42f17766b1e8db8f1f4789cbad968e304
("freeze: abort vacuuming when we're going to freeze.") used ctdb_db for
a logging message which is in fact uninitialized, causing a crash (even
if it wasn't actually logged).
Initialize it properly. Also fix incorrect format in another logging
message introduced in that same change.
CQ:S1019093
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit 8e518950ba281502318d6300f7a5ec6cdf6b5674)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There are some reports of freeze timeouts, and it looks like vacuuming might
be the culprit. So we add code to tell them to abort when a freeze is
going on.
(This is based on the 1.0.112 branch version 517f05e42f, but far
simpler since tdb is now robust against processes being killed during
transaction commit)
CQ:S1018154 & S1018349
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit f5d7dc679501e607c2c83a248a89d3cada9df146)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
sometimes (very rarely) fails to restart the service.
Add a function to restart NFSd on SLES and RHEL-like systems.
If we detect the system is unhealthy due to kNFSd not running,
try to restart the service again "service nfs restart" and
hope for the best.
CQ1019372
(This used to be ctdb commit 25c4ce7e919f13226219f036bcffd2be76b2f06c)
|
| | |
| | |
| | |
| | | |
(This used to be ctdb commit c3eb53509331045074579468d94ed7e31101bba4)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
structure ctdb_tcp_connection.
Add a new "ctdb deltickle" command to delete tickles from the database.
This can ONLY be used for tickles created by "ctdb addtickle".
Push any "addtickle/deltickle" updates to other nodes every TickleUpdateInterval seconds'
(This used to be ctdb commit acded034e2f0dcae4c2c9e54e16a001caf23caec)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This can be used to set ctdbd up to generate a tickle for non-samba
services.
(samba contains code to set tickles up automatically)
(This used to be ctdb commit 7ef2cddad5326fdcc26138906948342039829495)
|
| | |
| | |
| | |
| | |
| | |
| | | |
ctdb_set_message_handler_send()
(This used to be ctdb commit 6aabe52d5ba629291aa630bc96a2b74dcecc5209)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
parts of the recovery daemon.
Initialize all event contexts to allow nesting
(This used to be ctdb commit 5bf6bd5e7f33aabbeb7b9707716ef99cf471e590)
|
|\ \ \
| |/ /
|/| |
| | | |
(This used to be ctdb commit 1566d2d23ab698896b3b6a76974a5c7452db4a62)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In Samba this is now called "tevent", and while we use the backwards
compatibility wrappers they don't offer EVENT_FD_AUTOCLOSE: that is now
a separate tevent_fd_set_auto_close() function.
This is based on Samba version 7f29f817fa939ef1bbb740584f09e76e2ecd5b06.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit 85e5e760cc91eb3157d3a88996ce474491646726)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is based on SAMBA as at revision 2de63aa2801a907905b3e05557074af5b896d486.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit cecd93be0a0aab868430dd43f8276bfb4e35f02e)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It turns out that we *do* want a separate private arg for the message
handler and the completion callback, so we change that.
We also fix the prototypes of the remove_message functions as we
implement them.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit 332375246eccd95da626f434f6d49dd9458a9787)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a script which starts up a fake ctdbd and runs the libctdb
test suite.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit 67ca040b07713d83385db63489c887f7156b7853)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit 1a23581c70a0c8c3b9c8fd4651ce1b2bb4464f97)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Once we do operations which alter the TDBs, we need to restore them to
pristine state after a failed child dies.
The method used here is a terrible hack: it should at least do a
tdb_lockall() on the database before blatting it.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit d48ec16bd2b4932442d95fc43bea52baa0425501)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Sometimes you just want to test that the basic test case is sane,
without all the failure paths being tested.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit be7c0bffb0d924c3e72753045d5b85ce90407579)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We include the file and line which called the functions, so the printed
failure path now looks like:
[malloc(ctdb.c:144)]:1:S[socket(ctdb.c:168)]:1:S...
The form is:
[ <function> ( <caller> ) ] : <input line> : <result>
<function> is the function which is called (eg. malloc).
<caller> is the file and line number which called <function>.
<input line> is the 1-based line number in the input which we were up to.
<result> is 'S' (success) or 'F' (failure).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(This used to be ctdb commit 5fb6da30b5b5a8b761c8ab9a8124b87b759ef055)
|