The annotated tag, ctdb-2.0.0 has been created at e29f936515e60dd057627d3fc72ae67b3075305b (tag) tagging e2213db479129ce9c2b2fb88ec8c53cbd33d54b3 (commit) replaces ctdb-1.13 tagged by Amitay Isaacs on Wed Oct 24 19:04:42 2012 +1100
- Log ----------------------------------------------------------------- CTDB version 2.0.0 Amitay Isaacs (82): build: Add rules to create ctags/etags packaging: Setup directories for rpmbuild build: Remove re-definition of same variable build: Display correct LIB_FLAGS while building build: Use system talloc library if available build: Use system tevent library if available build: Use system tdb library if available recovery: Add prototypes for tdb internal functions build: Substitute POPT macros once and reuse variables tests/tool: Fix the nodestatus test tests/tool: New nodestatus test tests: exportfs always outputs with options in brackets tests: Add a script to run cluster tests and make target "test_cluster" tests: Add regular expression parsing for hop_count_buckets tests: Fix the error messages in test event script ctdbd: Fix the error message string tests: Check for assigned IP addresses only if we are on real cluster tests: Check assigned IPs from ctdb output tests: Set the debug level = 3 when running local tests tests: Use CTDB_TEST_REAL_CLUSTER to decide if tests use local daemons recoverd: Fix spurious warnings when running with --nopublicipcheck ctdbd: Fix spurious warnings when running with --nopublicipcheck includes: Move special tevent defines from tevent.h to includes.h Remove explicit include of lib/tevent/tevent.h. ctdb_test: Remove faked wrappers for tevent functions in stub testing lib/tevent: Remove local modifications to tevent lib/tevent: Remove the files required to build tevent as a library lib/tevent: Sync tevent from samba git tree lib/talloc: Remove the files required to build talloc as a library lib/talloc: Sync talloc from samba git tree lib/tdb: Remove the files required to build tdb as a library lib/tdb: Sync tdb from samba git tree tests/tool: Fix the nodestatus test tests/tool: New nodestatus test tests: Fix wrapper scripts tests: CTDB_TEST_WRAPPER has to be an absolute path on a real cluster tests: test_wrap needs to set TEST_SCRIPTS_DIR tests/simple: Fix typo in the test message server: locking: Provide a common API for non-blocking locking of TDBs Revert "server: locking: Provide a common API for non-blocking locking of TDBs" tests: Use per node log files when running tests with local daemons packaging: make ctdb-tests package depend on nc server: Replace BOOL datatype with bool, True/False with true/false tests: Fix flakey behavior of ctdb_fetch test tests: Fix ctdb_fetch test (parse extra lines of output) tests: Increment RSN always in ctdb_update_record_persistent test Fix compiler warnings. util: Do not try to lockdown memory when running in local daemons mode ctdbd: Return explicit boolean values for function returning bool Remove tevent_loop_allow_nesting() web: Add my name to the developer list. util: Do not lock down memory when running with local daemons doc: Fix path string of /etc/sysconfig/ctdb file Revert "when creating/adding a public ip, set the initial interface to be the first interface specified" doc: Fix the hyperlink for "Testing CTDB" page scripts: Remove duplicate code from init script to set tunables doc: Fix documentation for setup event doc: Add info about execute permissions on event scripts header: Added DB statistics update macros common: Add routines to get process and lock information ctdbd: locking: Provide non-blocking API for locking of TDB record/db/alldb tools/ctdb: Display the locking statistics tests: Fix statistics test for new output lines from locking API ctdbd_test: Include ctdb_lock.c code for test stubs ctdb_freeze: Replace locking functions with locking API ctdb_recover: Replace static locking functions with locking API ctdbd: Replace lockwait with locking API and remove ctdb_lockwait.c locking: Schedule a new lock request everytime a lock is released locking: Add database priority handling for older versions of samba locking: Do not use ctdb_kill() to kill smbd processes build: Set CTDB_PATH to /tmp/ctdb.socket if SOCKPATH is not defined web: Remove reference to non-existent config files web: Add the links to ftp/http ctdb download area web: Add posix locking information to prerequisites doc: README - add information about CTDB, license and website build: Extract building of manpages in a separate Makefile packaging: Build docs and include them in tarball packaging: Factor out the code to genreate VERSION string packaging: Use common code to generate VERSION string doc: Do not keep the built version of manpages in version control packaging: Bundle README, COPYING and html version of manpages web: Update broken links to manpages David Disseldorp (1): Build: Set the default ctdb socket path at configure time Gregor Beck (1): ctdbd: refuse attaching with "persistent" to a non-persistent db and v.v. Martin Schwenke (196): ctdb tool: fix thinko in nodestatus command output Tests - simple - make disconnected node tests handle changed error message Tests - functions/environment - set and use $CTDB_NODES Eventscript functions - add new function die() Eventscripts - redesign and rewrite 13.per_ip_routing Eventscript functions - remove functions only used by 13.per_ip_routing Eventscript functions - remove now-unused route/IP re-add script logic Eventscript functions - no longer require interface_modify.sh Eventscript support - Remove unused interface_modify.sh Eventscript tests - make error message consistent with recent change Eventscript tests - make ip command stub vaguely maintainable Eventscript tests - implement ip rule in stub Eventscript tests - implement ip route in stub Eventscripts - 13.per_ip_routing should use dirname not basename for mkdir Eventscripts - use set_proc() rather than accessing /proc directly Eventscripts - make 13.per_ip_routing try harder to find public_addresses Eventscripts - make 13.per_ip_routing fail gracefully if config is missing Tests - eventscripts - ip stub command should print errors to stderr Tests - eventscripts - add -A/-D options Tests - eventscripts - more public IPs in default setup Tests - eventscripts - stub ctdb command updates Tests - eventscripts - fix hardcoding error Update .gitignore for eventscript testing fu. Tests - eventscripts - add support functions for policy routing testing Tests - eventscripts - improved support functions for handling public IPs Tests - eventscripts - rationalise CTDB fakery support Tests - eventscripts - change summary columns Tests - eventscripts - new function simple_test_command() Tests - eventscripts - initial policy routing tests Undo damage done by d8d37493478a26c5f1809a5f3df89ffd6e149281 Add policy routing documentation to ctdbd(1). Initscript - add backup of corrupt non-persistent databases Tests - turn of time logging by default Tests - IP allocation - add another LCP2 test based on a test failure Tests - IP allocation - 2 tests for NODE_FLAGS_NOIPTAKEOVER tests - export new variable TEST_SCRIPTS_DIR tests - add scripts/common.sh tests - add scripts/unit.sh tests - move functions only used by scripts/run_tests into that script tests - add -v option to set TEST_VERBOSE=true tests - run_tests can take a directory as an argument tests - run_tests includes common.sh, uses die() tests/tool - Restructure according to new convention tests/onnode - Restructure according to new convention tests/takeover - Restructure according to new convention tests - run_tests ignores trailing '/' on directories tests/eventscripts - Restructure according to new convention tests - run_tests needs to expand directories like "." and "..". tests/eventscripts: Tweak an error message in a policy routing test tests/eventscripts: Share directories must be absolute in eventscript tests tests: More unit test factoring/rationalisation and bug fixes tests: Rename ctdb_test_functions.bash to integration.bash tests: Rationalise integration test infrastructure Eventscripts - Fix typo in 13.per_ip_routing support for __auto_link_local__ tests: Local daemons are no longer the default, now require run_tests -l tests: Move relative directory path hack from run_tests to common.sh tests: Programs run by tests should be found in $PATH tests: Remove ctdb_test_env tests: Add -e option to cause run_tests to exit on first test failure tests: Add new -H option for run_tests to avoid printing header/footer tests: Fix trailing whitespace issues in integration.bash tests: test_wrap can use $TEST_SCRIPTS_DIR for a little extra clarity tests: run_tests should exit with failed test status if running with -H tests: Update top-level wrapper scripts tests: Update README files and add new README files where missing tests: Make run_tests -X more flexible - it now works with onnode tests/simple: Replace "tdbdump" with "ctdb cattdb" tests/integration: Use absolute path for socket symlink tests/integration: Remove cabability for testcase option tests: Add a -V option to set new variable TEST_VAR_DIR tests: Update integration.sh to use TEST_VAR_DIR tests: Improve the logic for adding directories to $PATH tests: Unit tests should use $TEST_VAR_DIR tests: Time logging in integration tests should use TEST_VAR_DIR tests/eventscripts: $FAKE_IP_STATE is always set in ip command stub tests: New run_tests -C (cleanup) option tests/simple: Add new pseudo testcase to potentially shutdown local daemons tests: Add installation script for tests tests/eventscripts: Add sanity check to esnure events.d/ can be found Eventscripts: fix basename -> dirname typo tests/eventscripts: Be more defensive about removing the var directory tests/eventscripts: Explicitly set CTDB_SERVICE_AUTOSTARTSTOP="yes" tests/eventscripts: Use a canned ctdb.sysconfig rather than a link tests/eventscripts: $CTDB_ETCDIR should be in $TEST_VAR_DIR tests: Update README Packaging: generate a ctdb-tests package Packaging: devel package fixes Eventscript functions: add optional version to nfs_check_rpc_service() Packaging: add options to ctdb.spec.in to force use of bundled libraries Packaging: Improve dependencies tests/eventscripts: $CTDB_BASE needs to be in $TEST_VAR_DIR tests/eventscripts: Fix a policy routing test tests: Allow run_tests.sh to take options tests: Allow run_cluster_tests.sh to take options tests: In integration tests, use --node-ip to avoid locking weirdness tests: Add a test for "ctdb reloadips" tests: Fix wrapper scripts to handle options and tests without breakage tests: Restore the old behaviour of "make test" so it uses tests/var tests: Use per-daemon public_addresses file for local daemons tests: New function get_ctdbd_command_line_option() for integration testing tests: Fix a typo in daemons_setup() tests: Move the "ctdb reloadips" test from complex/ to simple/ Eventscript functions: add optional version to nfs_check_rpc_service() Eventscripts: restart lockd in the background when going unhealthy Eventscripts: Modernise 60.ganesha to match 60.nfs tests: test_wrap needs to set TEST_BIN_DIR when installed Eventscripts: Fix deprecated iptables ! usage tests: Complex tests must not be run from a cluster node tests/eventscripts: Tweak expected output for lockd:b restart lib/tevent: In poll_event_context, add a pointer back to the tevent_context Revert "TEVENT: Add back tracking of long runnig events to the local copy of tevent library" lib/tevent: Add trace point callback Reimplement logging of long running events Eventscripts: 11.natgw $CTDB_NATGW_PUBLIC_IP splitting optimisation Eventscripts: remove redundant firewall rules from 11.natgw Eventscripts: Clean up startup sanity check in 11.natgw Eventscripts: Optimise building the host address in 11.natgw Eventscripts: Retrieve and build NAT gateway details better in 11.natgw Eventscripts: Update/remove stale comments in 11.natgw Eventscripts: Default route on NAT gateway should have a metric of 10 statd-callout: Fix a bug in the calculations of $STATE tests: select_test_node_and_ips() should never select non-node -1 tests/simple: ctdb reloadips test should use $test_ip tests: run_tests should exit with $status with -e option tests: simple tests against local daemons should check $TEST_LOCAL_DEAMONS tests: select_test_node_and_ips() should try to avoid failing tests/simple: ctdb stop/continue tests weren't actually checking IPs tests/complex: Fix broken ctdb_test_check_real_cluster() tests/eventscripts: Rewrite the testparm stub tests/tool: Run ctdb_tool_* under $VALGRIND Initscript: clean up drop_all_public_ips() ctdbd: Fix ctdb_control_release_ip() on local daemons ctdbd: Remove the worked "Forced" from message about running eventscripts ctdbd: Log a meaningful message if the nodes file/list is empty Eventscripts: Clean up 11.routing tools/onnode: Add -P option to push files to given nodes doc: Document the new onnode -P option ctdb tool: recmaster command might as well be auto-all Revert "Eventscripts - make 13.per_ip_routing fail gracefully if config is missing" Eventscripts: 13.per_ip_routing should always fail if config is missing tests/eventscripts: Extra cases for policy routing missing config test recoverd: Fix bogus info in message about changed flags recoverd: Update a log message that has bit-rotted recoverd: verify_local_ip_allocation() should dup ifaces before early return recoverd: main_loop() should not verify local IPs if node is stopped recoverd: An inactive node should not force recovery master elections recoverd: All inactive nodes should yield recovery master role eventscripts: Print a warning on failure to delete a routing rule tests/eventscripts: Add a policy routing unit test for "ip rule del" failure eventscripts: 13.per_ip_routing should remove bogus routes on ipreallocated tests/eventscript: unit test for 13.per_ip_routing bogus route removal Eventscripts: Indent error when a route delete fails in 11.per_ip_routing tests/eventscripts: Modify ip stub to simulate invalid table ID tests/eventscripts: New policy routing test with invalid table ID tools/ctdb: NAT gateway code should use CTDB_NATGW_NODES tools/ctdb: Factor out printing of the machine readable status header tools/ctdb: natgwlist output is either human readable or machine readable tools/ctdb: Remove redundant filtering loop in control_natgwlist() libctdb: add ctdb_getcapabilities() tests: libctdb stubs must copy pointers rather than just returning them tests: libctdb stubs initial ctdb_getcapabilities() implementation tools/ctdb: Convert some commands over to libctdb tools/ctdb: Clean up control_natgw() tests/tool: New function setup_natgw() to setup $CTDB_NATGW_NODES tests/tool: New tests for natgwlist, getcapabilities, lvs, lvsmaster libctdb: Add comments to effect that some controls return result in status tools/ctdb: Free the event context Initscript: Kill any existing ctdbd processes if the ping succeeds Eventscripts: split 50.samba into 49.winbind and 50.samba eventscripts: Auto-start/stop services in background util: ctdb_fork() closes all sockets opened by the main daemon ctdbd: Avoid unnecessary updateip event Eventscripts: Add service-start and service-stop pseudo-events ctdbd: New tunable NoIPTakeoverOnDisabled ctdbd: Stop takeovers and releases from colliding in mid-air recoverd: When starting a takeover run disable IP verification recoverd: Track failure of "recovered" event, banning culprits Eventscripts: Add support for "reconfigure" pseudo-event for policy routing tests/eventscripts: add extra infrastructure for policy routing tests tests/eventscripts: add unit tests for policy routing reconfigure common: Debug ctdb_addr_to_str() using new function ctdb_external_trace() Logging: Map TEVENT_DEBUG_FATAL to DEBUG_CRIT Eventscripts: "recovered" event should not fail on NATGW failure Revert "Eventscripts - add facility to 10.interface to delete unmanaged IPs" recoverd: Verifying local IPs should only check for unhosted available IPs tools/ctdb: Remove extra header from natgwlist -Y output recoverd: Clarify some misleading log messages ctdbd: Remove references to forcing running of eventscripts from log messages initscript: Check that rc.ctdb is executable before running it tools/ctdb_diagnostics: Add "ctdb listvars" output scripts: Refactor logging code in initscript and functions file recoverd: Add CTDB_SRVID_GETLOG and CTDB_SRVID_CLEARLOG tools/ctdb: Add log ringbuffer handling for recoverd tools/ctdb: Merge recoverd log handling into getlog/clearlog tests: Local daemons should use the logging ringbuffer doc: getlog and clearlog changes for recovery daemon logs Michael Adam (4): ctdb: use correct "persistent" state for ctdb_attach in "ctdb cattdb" run_tests.sh: fix a comment run_tests: improve spacing config/functions: fix a comment Ronnie Sahlberg (43): READONLY: when updating a remote node to revoke a delegation, make sure we dont create the record if it doesnt already exist ReadOnly: Only restrict the readonly sanity/paranoia check that only allows Test: add test tool and test that UPDATE_RECORD works on persistent databases Merge remote branch 'martins/master' add max hop count buckets to see how bad hopcounts are FETCH COLLAPSE : Change the fetch-lock collapse to collapse ALL fetches, including fetch-locks into a single command in flight per record. Also add a tunable to enable/disable this optimization for hot records DOC document the FetchCollapse tunable CTDB: change how the hop count buckets are displayed in ctdb statistics STATISTICS: add per-db hop count statistics LACOUNT: Add back lacount mechanism to defer migrating a fetched/read copy until after default of 20 consecutive requests from the same node DOC: Document the MaxLACount tunable variable STICKY: add prototype code to make records stick to a node to "calm" down if they are found to be very hot and accessed by a lot of clients. STICKY document the sticky record parameters DOC regenerate the manpage Make NoIPFailback a node local setting. Nodes that have NoIPFailback set to !0 can not takeover new ip addresses during failover. NoIPFailback: Exclude nodes which have NoIPFailback as failback targets during reallocation NoIPTakeover: change the tunable name for the "dont allow failing addresses over onto the node" to NoIPTakeover DOC: regenerate manpages Merge remote branch 'martins/policy_routing' CTDB: add back the "rebalanceip" command Add test for NoIPTakeover Merge remote branch 'martins/master' Merge remote branch 'amitay/talloc-sync' Merge remote branch 'amitay/tevent-sync' Merge remote branch 'amitay/tdb-sync' Add new control to reload the public ip address file on a node RELOADIPS: simplify the reloadips code a bit DOC: document the reloadips command Track all child process so we never send a signal to an unrelated process (our child died and kernel wrapped the pid-space and reused the pid for a different process We dont need to serialize the "probe which address this node is" if we have given an explicit --node-ip on the commandline Debug: When scripts hang, we may need to collect additional data in order to debug why the script hung. Merge remote branch 'martins/ganesha' GANESHA: make the ganesha script executable by default TEVENT: Add back tracking of long runnig events to the local copy of tevent library DEBUG: Add checks for and print debug messages when 1) a database contains very many records, 2) when a database is very big, 3) when a single record is very big. DOCS: Document the new tunables to produce warnings if databases grow unexpectedly big. RECOVER: When we pull databases during recovery, we used to reallocate the databuffer for each entry added. This would normally not be an issue, but for cases where memory is fragmented, this could start to cost significant cpu if we need to reallocate and move to a different region. RECOVERY: Increase the time we allow before timing out recovery related tasks. Run the shutdown eventscript before we tear down the transport STATISTICS: Add tracking of the 10 hottest keys per database measured in hopcount Add new command to find which interface is located on When we release an ip, get the interface name from the kernel When we find an ip we shouldnt host, just release it Stefan Metzmacher (3): lib/tevent/testsuite: no longer use 'compat' symbols tevent: expose tevent_context_init_ops tevent: change version to 0.9.16 Volker Lendecke (2): Correct include for ctdb_protocol.h Avoid a bashism in 60.ganesha ----------------------------------------------------------------------- -- CTDB repository