summaryrefslogtreecommitdiffstats
path: root/ctdb
Commit message (Collapse)AuthorAgeFilesLines
...
| * | tdb: Fix some recently introduced warnings in tdbtool (cherry picked from ↵Tim Prouty2009-12-161-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | samba commit c299833bf8e6506c793d6e8283743949aaac9ef4) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 5830a2427b84e1cce74390b58fe12c45b5a056a6)
| * | added some more speed tests to tdbtoolAndrew Tridgell2009-12-161-6/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds 3 simple speed tests to tdbtool, for transaction store, store and fetch. On my laptop this shows transactions costing about 10ms (cherry picked from samba commit e15027155d3d880abde83124e252b3dd10a9aae4) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 463279c972fa4538919bdd1dff48ca6b2fb8d49c)
| * | tdb:tdbtool: add transaction_start/_commit/_cancel commands.Michael Adam2009-12-161-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So one can perform tdbtool operations protected by transactions. Michael (cherry picked from samba commit 91e1bab2e9a3f33151061554f2dcf05bcb728312) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 35a5b874b925380f7c227e47aebb590c9db4739e)
| * | tdb:tdbtool: add the "speed" command to the help text.Michael Adam2009-12-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Michael (cherry picked from samba commit 817383d88d820e7be5b5dd3d2da350d4a03a94de) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit dc287a7d7420cca0b104049e689a73202bc535f8)
| * | Added a simple tdb integrity check to tdbtool. The command "check" runs ↵Holger Hetterich2009-12-161-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | traverse on the currently open tdb, and returns the number of entries if the integrity check is successful. (cherry picked from samba commit 42366bcbbdd42bb9d5821dfcc9dbe71a1eafa330) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 02b35ba77672727c96ad004be37c7f6f1d3fe474)
| * | tdb: allow reads after prepare commitAndrew Tridgell2009-12-161-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We previously only allowed a commit to happen after a prepare commit. It is in fact safe to allow reads between a prepare and a commit, and the s4 replication code can make use of that, so allow it. (cherry picked from samba commit 46c99ec2a3781d53138245182345c6c2ddd9a258) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 5ef5ddb8369e5e76173285fe9a08498dc8dc73ab)
| * | tdb:mksigs: allow PRINTF_ATTRIBUTE(..) macros function types as funcion argsMichael Adam2009-12-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Michael (cherry picked from samba commit 55dcf928eb6ce603c5e95a9a80856a4deb33d0c6) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit ef1dc585d869a9e48164cd65bafc92c1da245007)
| * | tdb:mksigs: normalize bool -> _BoolMichael Adam2009-12-161-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Michael (cherry picked from samba commit cfa4e7ec7540d1100649839a10968303189fe929) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 0ae735b7a2096a40e5e47086ec41d9d45ef6d36b)
| * | tdb:mksigs: ignore symbols (like _DEPRECATED_) after closing function ↵Michael Adam2009-12-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | parentheses Michael (cherry picked from samba commit 25939a627f15b7a21110767d47be0f50f32d3943) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 2e69647404c87c438ae7c180277ac3b532941efd)
| * | tdb:mksigs: correctly ignode multiline function typedefsMichael Adam2009-12-161-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | by first concatenating multilint parentheses and removing typefes afterwards. Michael (cherry picked from samba commit 13bfcd5a93c47c9db8b644560a1bcc398facb136) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 37225f1ed3f70d7259c2af2c51c671105c34476a)
| * | tdb:mksigs: ignore struct forward declarations.Michael Adam2009-12-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Michael (cherry picked from samba commit ecd12bfb382da072595391d5bf11a893d39a0479) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 66fffa577e051212ac7541be906b6c80f4a7c0c9)
| * | tdb:mksyms: allow characters after closing functions parenthesis.Michael Adam2009-12-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Michael (cherry picked from samba commit 400f08450b26f38a7dafd1d458542b4d9a8cb19e) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 310d673b7cb9000d76437d78e43bc2bf133e4e14)
| * | tdb:mksyms: allow double pointer return value of functions.Michael Adam2009-12-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Michael (cherry picked from samba commit 907e05595fdcc4ef77ad627bc0f3732faa59de68) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit f70e371d70e334a7254649b2bb09aa382e6f09bb)
| * | tdb: fix c++ build warning.Günther Deschner2009-12-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Guenther (cherry picked from samba commit 1c2f4919abe99d07540b7380ad16d475d62aa50b) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 9d5015e6fc68d3eb9e7b7178dbaf8c129dc79471)
| * | One would expect I could spell my name... (cherry picked from samba commit ↵Michael Adam2009-12-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 0d120be36bfc561e3f679d081993ccc6bea2a401) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit efa4a795db7fb2bddaab3969850d1554fc5f4da1)
| * | tdb: add script/abi_checks.sh. check for abi changes without gcc magic.Michael Adam2009-12-161-0/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | USAGE: abi_checks.sh LIBRARY_NAME header1 [header2 ...] This creates symbol signature lists using the mksyms and mksigs scripts and compares them with the checked in lists. Michael (cherry picked from samba commit 9636e0d373e75cce7063b710227eaaf53f447c1b) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 724d71dc838750fff91a45359feeb6e71bf0a4c7)
| * | tdb: add script to extract signatures from header files.Michael Adam2009-12-161-0/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This produces output like the output gcc produces when invoked with the -aux-info switch. Run like this: cat include/tdb.h | ./script/mksigs.pl This simple parser is probably too coarse to handle all possible header files, but it treats tdb.h correctly... Michael (cherry picked from samba commit 0760a04ef9f7d2f3d966017295712769d02b8b9f) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 141422d9dc24b15b7b8bc7831adab90367a729f7)
| * | tdb: add scripts to extract library symbols (exports file) from headersMichael Adam2009-12-162-0/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | Michael (cherry picked from samba commit 006fd0c43c7c403b8671dfc46e5ee31e92480e1f) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit aed864dceaf6ec1e6e6066a587c708b485901200)
| * | lib/tdb: don't overwrite TDBs with different version numbers.Rusty Russell2009-12-161-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In future, this may happen, and we don't want to clobber them. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (cherry picked from samba commit 398d0c2929026fccb3409316720a4dcad225ab05) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit eebd467961dad6cfb38c2a5d6e4b4dbf86e55e63)
| * | Add define guards around otherwise unused variable. Jeremy. (cherry picked ↵Jeremy Allison2009-12-161-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | from samba commit 4fc9f9c3f943cdeb27e37f0ee068cdd0da7cb00c) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 6f8614de0f20d4c507aecd744d9c3f6545078127)
| * | There is one signedness issue in tdb which prevents traverses of TDB records ↵Rusty Russell2009-12-161-9/+21
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | over the 2G offset on systems which support 64 bit file offsets. This fixes that case. On systems with 32 bit offsets, expansion and fcntl locking on these records will fail anyway. SAMBA already does '#define _FILE_OFFSET_BITS 64' in config.h (on my 32-bit x86 Linux system at least) to get 64 bit file offsets. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (cherry picked from samba commit 252f7da702fd0409f7bfff05ef594911ededa32f) Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 2d768f664e6db65b3b7e0c732f33ee2b806892f9)
| * Revert "cleanup: remove a tunable we no longer use in the eventscripts any ↵Ronnie Sahlberg2009-12-162-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | more :" This reverts commit 401f421fa003d9515df15e759b50b56e0c67d69c. Conflicts: include/ctdb_private.h server/ctdb_tunables.c (This used to be ctdb commit b883d19a495a41a22db37f9c2cf6250fee529de0)
| * Merge branch 'trans3'Ronnie Sahlberg2009-12-159-67/+194
| |\ | | | | | | | | | (This used to be ctdb commit b765e12a5fb87a6121e49b349017b6a961929346)
| | * Revert "Make fetch_locked more scalable"Ronnie Sahlberg2009-12-157-217/+0
| | | | | | | | | | | | | | | | | | This reverts commit 5736e17c139c9a8049e235429aeae0c6c9d0e93d. (This used to be ctdb commit 3d2d877d877146ca09a28a3a44f4840eb36fd377)
| | * Merge commit 'obnox/ctdb-wip-trans3' into trans3Ronnie Sahlberg2009-12-1513-67/+411
| | |\ | | | | | | | | | | | | (This used to be ctdb commit ac06a0e042e7d024060d6e87a49bda9ccc072c52)
| | | * Revert "recovery: add special pull-logic for persistent databases"Michael Adam2009-12-121-54/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8aef46d2aab3efb322dda51eaa202653cefd5222. This special recovery logic is wrong now with the transaction rewrite. The treatment of persistent databases will later be rewritten to use the database sequence number. Michael (This used to be ctdb commit c5a0aef668a63f927d6184612b13ce316eb4a0be)
| | | * Make fetch_locked more scalableVolker Lendecke2009-12-127-0/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch improves the handling of the fetch_lock operation on non-persistent databases that ctdb clients have to do very frequently. The normal flow how this goes is the following: 1. Client does a local fetch_lock on the database 2. Client looks if the local node is dmaster. If yes, everything is fine If no, continue here 3. Client unlocks the local record 4. Client issues a "get me the record" call to ctdbd 5. ctdbd goes out and fetches the dmaster role 6. ctdbd tells the client to retry 7. Client starts over again The problem is between step 6 and 7: Before the client has had the chance to retry (i.e. catch the record with a fetch_locked), another node might have come asking ctdbd to migrate away the record again. This is a real problem, I've seen >20 loops of this kind in real workloads. This patch does the following: Whenever ctdb receives a record as result of step 5, it puts the key on a "holdback list". As long as a key is on this list, a request to migrate away the dmaster is put on hold. It is the client's duty to issue the "CTDB_CONTROL_GOTIT" control when it has successfully done step 2 after having asked ctdb to fetch the record. This will release the key from the "holdback list" and re-issue all dmaster migration requests. As a safeguard against malicious clients, once a second (default 1000msecs, tunable "HoldbackCleanupInterval" in milliseconds) ctdbd goes over the list of held back keys, deletes them and releases all held back migration requests. (This used to be ctdb commit 5736e17c139c9a8049e235429aeae0c6c9d0e93d)
| | | * Import "talloc_array_length" from upstream tallocVolker Lendecke2009-12-121-0/+1
| | | | | | | | | | | | | | | | (This used to be ctdb commit 844aa6300ee4d87561e698001ebc15ac1e455528)
| | | * tests: temporarily disable the transaction test tool.Michael Adam2009-12-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make it return success for make test. This is temporarily disabled until the rewrite of the transaction code (in samba and the daemon) using the global lock feature has been ported to the ctdb client code. Michael (This used to be ctdb commit 78ca29352aa39f4ef4e41096b92d55cb2e0d348a)
| | | * Add a new control CTDB_GET_DB_SEQNUM - fetch a persistent db's sequence number.Michael Adam2009-12-123-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | Michael (This used to be ctdb commit a7e3b5fac6b3f5d74473f26eb86c067b35647996)
| | | * define CTDB_DB_SEQNUM_KEY - used with the new implementation of transactions.Michael Adam2009-12-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | Michael (This used to be ctdb commit 4b1dbcf0853bdc4832d39a477823ae34f216da52)
| | | * Tiny simplification of ctdb_queue_packet()Volker Lendecke2009-12-121-9/+11
| | | | | | | | | | | | | | | | (This used to be ctdb commit 1640da1cab7e8b545367824204c82931f3346848)
| | | * Rename a struct member for clarityVolker Lendecke2009-12-122-4/+4
| | | | | | | | | | | | | | | | (This used to be ctdb commit 6af5e74a21546d723008d69d6752ebebf898c947)
| | | * server: add a new control CTDB_CONTROL_TRANS3_COMMITMichael Adam2009-12-123-0/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a simplified version of the trans2 commit control: It just rolls out the marshall buffer to all active nodes. It is the main ctdbd part of the re-implementation of the persistent transactions. The client code is changed to take a global lock to start a transactions and store into the marshal buffer instead of writing to the local tdb under a local transaction. The old transaction implementation is going to be removed in a later commit. Michael (This used to be ctdb commit f66428f9d2013080a414404c1ba6117888352fd6)
| * | | Author: Rusty Russell <rusty@rustcorp.com.au>Ronnie Sahlberg2009-12-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Date: Tue Dec 15 15:53:30 2009 +1030 eventscript: hack to avoid overloading valgrind Now we fork one child per script, when running under valgrind the load gets quite high. This is because valgrind does a lot of work after exit, and we don't wait for the children to finish; we start the next one when the child reports status via the pipe. This fix is ugly, but simple. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (This used to be ctdb commit 6ed34d5320c39d8a55f2a36ad4c1ab574e0b0796)
| * | | This is a dodgy patch.Ronnie Sahlberg2009-12-151-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I saw once where the master ctdbd logging structure was talloc freed which caused issues. So only free the structure if it is NOT the master structure. This needs to be looked into in more detail. (This used to be ctdb commit bcf494b81f4277dc75f05faccf0c446bd15f6e2b)
| * | | add a new test tool that just locks and releases the same record over and overRonnie Sahlberg2009-12-152-1/+146
| | | | | | | | | | | | | | | | (This used to be ctdb commit 24767be2eb9aed29704c2a4097bab5466cb6728f)
| * | | ctdb_fetch requires the number of nodes being specified.Ronnie Sahlberg2009-12-151-0/+5
| |/ / | | | | | | | | | | | | | | | Have it log an error and terminate if thie parameter was omitted (This used to be ctdb commit 340be0179f55acfff77f8c3c8be958679227bde1)
* | | Test suite: Add an optimisation in the getvar test.Martin Schwenke2009-12-181-1/+1
| | | | | | | | | | | | | | | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> (This used to be ctdb commit d9105ea79df198a20c2bfe471c4793d1dbba886e)
* | | Test suite: allow settign of timeout triggers for all events not just monitor.Martin Schwenke2009-12-181-11/+34
|/ / | | | | | | | | | | Signed-off-by: Martin Schwenke <martin@meltin.net> (This used to be ctdb commit f319bd54369a2bc7d32c3bda7fc22f2ef1a51c3a)
* | When setting up the logging, set the event to trigger a read of a log ↵Ronnie Sahlberg2009-12-151-1/+1
| | | | | | | | | | | | | | | | message from a child process as a child of the "log" structure and not the ctdb structure, or else we can crash if we receive log messages from a child but the log structure has been freed() (This used to be ctdb commit ea9e39369379939abf6a4076fa2014c10c1a9ad0)
* | From rusty:Ronnie Sahlberg2009-12-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Subject: eventscript: fix spinning at 100% cpu when child exits. ctdbd was spinning reading 0 from a pipe, as soon as the first eventscript finishes. This was caused by the intersection between a78b8ea7168e "Run only one event for each epoll_wait/select call" and 32cfdc3aec34 "eventscript: ctdb_fork_with_logging()". Unavoidable mid-air collision, since both worked fine and both were developed simultaneously. When the script exits, we have two pipes open to it: one for any stdout/stderr for logging (ctdb_log_handler), and one for the result (ctdb_event_script_handler). The latter frees everything, including the log fd and event structure. We used to get one callback to ctdb_log_handler, which got a harmless 0-length read, then one to ctdb_event_script_handler which cleaned up. Now we only do one callback per poll, we need the logging function to clean itself up so we can make process. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (This used to be ctdb commit 211ea7907e8e96041aa6f7d086551d64d065a8a3)
* | Rename the tunable EventScriptBanCount to EventScriptTimeoutCountRonnie Sahlberg2009-12-143-4/+4
| | | | | | | | | | | | | | | | since we no longer ban nodes when dodgy scripts continue to hang. We now only mark nodes as unhealthy if monitor events fail or timeout. Never ban. (This used to be ctdb commit 5c8e56fc7a518e115bceac257867739283cf6a1e)
* | cleanup: remove a tunable we no longer use in the eventscripts any more :Ronnie Sahlberg2009-12-142-2/+0
| | | | | | | | | | | | EventScriptUnhealthyOnTimeout (This used to be ctdb commit 401f421fa003d9515df15e759b50b56e0c67d69c)
* | ctdb: don't print OUTPUT: for DISABLED scriptsRusty Russell2009-12-141-4/+6
| | | | | | | | | | | | | | | | In other news, did you know ctime() returns a \n-terminated string? Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (This used to be ctdb commit 1b4e7bb548976b99f122142b040494b6f9911962)
* | eventscript: fix monitoring when killed by another script commandRusty Russell2009-12-141-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit c1ba1392fe "eventscript: get rid of ctdb_control_event_script_finished altogether" was wrong: there is one case where we want to free the script without transferring their status to last_status. This happens because we always kill an running monitor command when we run any other command. This still isn't quite right (and never was): the callback will be called with status value 0, which might flip us to HEALTHY if we were unhealthy. This is conveniently fixed in my next set of patches :) Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (This used to be ctdb commit 0ea0e27d93398df997d3df9d8bf112358af3a4a5)
* | remove the variable "disable when unhealthy"Ronnie Sahlberg2009-12-143-6/+0
|/ | | | | | there is no rational need for a setting where we permanently mark nodes as disabled everytime an eventscript fails (This used to be ctdb commit 68a8ee99b128a5ec883600735626bdb3bbc9c503)
* From: Volker Lendecke <vl@samba.org>Ronnie Sahlberg2009-12-101-2/+0
| | | | | | | Date: Wed, 9 Dec 2009 22:45:12 +0100 Subject: [PATCH] Revert an accidential commit (This used to be ctdb commit af6656f2844d8fd72204a70358c9d589dbe1bd34)
* tests: remove the no_trans mode from ctdb_transaction.Michael Adam2009-12-091-58/+34
| | | | | | | | | Writes without transaction are not possible any more on persistent databases. Michael (This used to be ctdb commit 59f46d7261dfdbdef900bf95dd9eb28ad22a46b2)
* tests: remove the persistent_unsafe writes test.Michael Adam2009-12-091-39/+0
| | | | | | | | | This is useless now that persistent write operations without transaction are forbidden. Michael (This used to be ctdb commit b022863d44026c19d5aae54aa485b670bea0540e)