[SCM] CTDB repository - annotated tag ctdb-1.2.45 created - ctdb-1.2.45

Amitay Isaacs amitay at samba.org
Thu Jul 12 23:05:47 MDT 2012

The annotated tag, ctdb-1.2.45 has been created
        at  0f0cec3f3b87917f13ffe79b7c95b1f3e4ad5f56 (tag)
   tagging  95efb0cffb19a4311d706b2fd7031834a2711022 (commit)
  replaces  ctdb-1.9.1
 tagged by  Martin Schwenke
        on  Thu Jul 12 14:06:47 2012 +1000

- Log -----------------------------------------------------------------
CTDB release 1.2.45

Andrew Tridgell (1):
      tdb: added TDB_NO_FSYNC env variable

Chandra Seetharaman (1):
      make changes to ctdb event scripts to support NFS-Ganesha.

Christian Ambach (1):
      improve timing issue detections

David Disseldorp (1):
      io: Make queue_io_read() safe for reentry

Evan Kinney (1):
      ctdb: Fixed use of reserved word "private" in typedefs

Gregor Beck (4):
      ctdb catdb: fix escaping of '"' and '\'
      add ltdbtool - a standalone ltdb tool
      ltdbtool: add manpage
      ltdbtool: add manpage html + roff

Günther Deschner (1):
      lib/tdb: fix c++ build warning in tdb_header_hash().

Harald Klatte (1):
      AIX bind wants the correct addrsize

Jelmer Vernooij (3):
      pytdb: Make filename argument optional.
      pytdb: Include Python.h first to prevent warning.
      pytdb: Add __version__ attribute.

Kirill Smelkov (9):
      pytdb: Add support for tdb_add_flags() & tdb_remove_flags()
      pytdb: Fix repr segfault for internal db
      pytdb: Update open flags to match those for tdb_open() in tdb.h
      pytdb: Add support for tdb_enable_seqnum, tdb_get_seqnum and tdb_increment_seqnum_nonblock
      pytdb: Add support for tdb_transaction_prepare_commit()
      pytdb: Add support for tdb_freelist_size()
      pytdb: Add TDB_INCOMPATIBLE_HASH open flag
      pytdb: Add support for tdb_repack()
      pytdb: Check errors after PyObject_New() calls

Martin Schwenke (103):
      Test suite: handle change to disconnected node error message.
      Test suite: handle extra lines in statistics output.
      Optimise 61.nfstickle to write the tickles more efficiently.
      Testing: Add Python IP allocation simulation.
      Test suite: handle change to disconnected node error message.
      Test suite: handle extra lines in statistics output.
      Optimise 61.nfstickle to write the tickles more efficiently.
      Testing: Add Python IP allocation simulation.
      Merge branch 'master' of git://git.samba.org/sahlberg/ctdb
      Testing: Add imbalance information to IP allocation simulation.
      Testing: In IP allocation simulation count total number of events.
      Testing: IP allocation simulation prints final imbalance in statistics.
      Testing: IP allocation simulation - save some warnings for verbose mode.
      Testing: IP allocation simulation - add command line option for random seed.
      Testing: IP allocation simulation - update copyright message.
      Testing: IP allocation simulation - Tweak options handling and Cluster.diff().
      Testing: IP allocation simulation - fix nondeterminism in do_something_random().
      Testing: IP allocation simulation - Update README.
      Testing: IP allocation simulation - update options processing in examples.
      Testing: IP allocation simulation - add general node group example.
      Testing: IP allocation simulation - rename an example to node_group_simple.py.
      Testing: IP allocation simulation - rename an example to node_group_extra.py.
      Testing: IP allocation simulation - make usage/failure more obvious.
      Testing: IP allocation simulation - improve help for options.
      Testing: IP allocation simulation - print maximum number of unhealthy nodes.
      Testing: IP allocation simulation - clean up usage message.
      Testing: IP allocation simulation - add option to change odds of a failure.
      Test suite - try to make addip test more reliable and add some debugging.
      Merge remote branch 'martins/master'
      Test suite - fix addip test.
      Test suite: remove thaw/freeze tests.
      Test suite - make the ctdb_fetch test cope with "Reqid wrap!" messages.
      initscript: wait until we can ping ctdbd before setting tunables.
      Test suite: weaken ctdb continue/enable tests for non-deterministic IPs.
      Test suite: Fix typo in continue test.
      Test suite: remove unnecessary verbosity from enable/continue tests.
      Add some command-line options to ctdb_diagnostics.
      Test suite: make addip test use $CTDB rather than ctdb in debug code.
      Test suite: improve wait_until_node_has_status()
      Test suite: use $CTDB rather than ctdb everywhere in ctdb_test_functions.sh.
      Test suite: strengthen function _cluster_is_healthy().
      Test suite: print date/time at test completion.
      Test suite: Add more timestamping of debugging information.
      Test suite: loosen the getmonmode test.
      Move NAT gateway firewall rules to recovered|updatenatgw events.
      Merge branch 'master' of git://git.samba.org/sahlberg/ctdb
      Merge branch 'master' of git://git.samba.org/sahlberg/ctdb
      Test suite: in the test eventscript, run "ctdb" not "$CTDB".
      NFS tickles: use addtickle/deltickle instead of shared tickle directory.
      Test suite: NFS tickle test uses gettickles if events.d/61.nfstickle missing.
      Test suite: Fix typos in NFS tickle test.
      Test suite: Tweak NFS tickle test.
      Test suite: Fix NFS tickle test.
      Test suite: Make NFS tickle test more flexible.
      Test suite: make statistics test cope with changes to statistics output.
      Test suite: match changed output for ctdb ping to disconnected node.
      Test suite: fix typo in ctdb ping test grep pattern.
      60.nfs only fails or warns after 10 consecutive nfsd/statd failures.
      Make a time comparison in 60.nfs eventscript more readable.
      Eventscripts: make loadconfig() function hookable by the test suite.
      50.samba eventscript should stop/start services when they become (un)managed.
      Eventscript functions - catch failures in ctdb_service_start().
      60.nfs eventscript should do nothing if NFS isn't managed by CTDB.
      Eventscripts: work around NFS restart failure under load.
      Eventscripts: print a message when reconfiguring a service.
      Eventscripts: only autostart during a monitor event.
      Eventscripts: use "startstop_nfs restart" to reconfigure NFS.
      Eventscripts: lower the fail/restart limits for nfsd.
      onnode - Fix long standing bug in onnode healthy/ok/connected/con.
      onnode: Be defensive when listing IPs of nodes with designated status.
      onnode: Exit with error for unknown command-line flags.
      onnode: Future-proof get_nodes_with_status().
      onnode: Remove an unnecessary comment.
      onnode: fix get_nodes_with_status()
      onnode: fix natgwlist nodespec
      Eventscript functions: optimise ctdb_check_tcp_ports() and add debug.
      IP allocation - add LCP2 algorithm.
      Tests: Initial test code for LCP2 IP allocation algorithm.
      Eventscripts - 10.interfaces should not check orphaned interfaces.
      Eventscripts - weaken TCP port check message if CTDB has just been started.
      Eventscripts: New configuration variable CTDB_SERVICE_AUTOSTARTSTOP.
      Eventscripts - generalise TCP port checking plus new nmap-based checker
      Eventscripts - new default TCP port checker using "ctdb checktcpport"
      Eventscripts - fix debugging buglet in ctdb_check_tcp_ports_ctdb()
      Eventscripts - ctdb_check_tcp_ports() bug fix.
      Make ctdb_diagnostics more resilient to uncontactable nodes.
      Eventscripts: Work around 50.samba autostop failure
      LCP IP allocation algorithm - new function lcp2_failback_candidate()
      LCP IP allocation algorithm - try harder to find a candidate source node
      Eventscripts - redesign and rewrite 13.per_ip_routing
      Eventscript functions - remove functions only used by 13.per_ip_routing
      Eventscripts - new function ctdb_check_args()
      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
      Eventscripts - Fix typo in 13.per_ip_routing support for __auto_link_local__
      Eventscripts: fix basename -> dirname typo
      eventscripts: Print a warning on failure to delete a routing rule
      eventscripts: 13.per_ip_routing should remove bogus routes on ipreallocated
      eventscripts: 13.per_ip_routing - readability improvement
      eventscripts: 13.per_ip_routing - flock should have a timeout
      New version 1.2.45

Michael Adam (87):
      server: when we migrate off a record with data, set the MIGRATED_WITH_DATA flag
      persistent_callback: ignore the update-recordreturn code of remote node in recovery
      persistent_store_timout: do not really time out the trans3_commit control in recovery
      persistent: if a node failed to update_record, trigger a recovery
      persistent: reduce indentation for the finishing moves in ctdb_persistent_callback
      persistent_callback: print "no error message given" instead of "(null)"
      persistent: add a ctdb_persistent_state member to the ctdb_db context.
      persistent: add a ctdb_db context to the ctdb_persistent_state struct.
      persistent: allocate the persistent state in the ctdb_db struct in trans3_commit
      persistent: reject trans3_control when a commit is already active.
      persistent: add a client context to the persistent_stat and track the db_id
      daemon: correctly end a running trans3_commit if the client disconnects.
      persistent: add ctdb_persistent_finish_trans3_commits().
      recover: finish pending trans3 commits when a recovery is finished.
      New version 1.2.22.
      gitignore: add vi swap files
      gitignore: add tags file
      tests: fix segfault in randrec test when connection to daemon fails.
      tests: fix segfault in fetch test when connection to ctdb failed.
      tests: fix segfault in fetch_one test when connection to ctdbd fails
      tests: fix segfault in store test when connection to ctdbd failed.
      Fix typos in a comment in vacuum_traverse.
      vacuum: in ctdb_vacuum_db, fix the length of the array of vacuum fetch lists
      vacuum: correctly send TRY_DELETE_RECORDS ctrl to all active nodes
      vacuum: reduce indentation of the loop sending VACUUM_FETCH controls
      vacuum: check lmaster against num_nodes instead of vnn_map->size
      server: when we migrate off a record with data, set the MIGRATED_WITH_DATA flag
      recoverd: in a recovery, set the MIGRATED_WITH_DATA flag on all records
      call: add new call flag CTDB_CALL_FLAG_VACUUM_MIGRATION
      call: Move definition of call flags down to the definition of the flags field.
      add a new record flag CTDB_REC_FLAG_VACUUM_MIGRATED.
      server: in the VACUUM_FETCH handler, add the VACUUM_MIGRAION to the call flags
      call: transfer the record flags in the ctdb call packets.
      call: hand the submitted record_flags to local record storage function.
      call: becoming dmaster in VACUUM_MIGRATION, set the VACUUM_MIGRATED record flag
      Add a delete_queue to the ctdb database context struct.
      When attaching to a non-persistent DB, initialize the delete_queue.
      vaccum: clear the fast-path vacuuming delete_queue after creating the vacuuming child.
      When wiping a database, clear the delete_queue.
      server: rename ctdb_repack_db() to ctdb_vacuum_and_repack_db()
      vacuum: refactor new add_record_to_vacuum_fetch_list() out of vacuum_traverse().
      vacuum: skip adding records to list of records to send to lmaster on lmaster
      vacuum: refactor new add_record_to_delete_tree() out of vacuum_traverse().
      vacuum: reduce indentation in add_record_to_delete_tree()
      vacuum: add delete_queue_traverse() for traversal of the delete_queue.
      vacuum: traverse the delete_queue befor traversing the database.
      Add a tunable VacuumFastPathCount.
      vacuum: add a fast_path_count to the vacuum_handle.
      vacuum: bump the number of fast-path runs in the vacuum child destructor
      vacuum: reset the fast path count in the event handle if it exceeds the limit.
      vacuum: Only run full vacuumig (db traverse) every VacuumFastPathCount times.
      vacuum: disable full db-traverse vacuuming runs when VacuumFastPathCount == 0
      vacuum: change all Vacuum*Interval tunables to default to 10
      vacuum: refactor insert_delete_record_data_into_tree() out of add_record_to_delete_tree()
      vacuum: add statistics output to the fast and full traverse runs.
      vacuum: lower level of hash collision debug message to INFO
      control: add macro CHECK_CONTROL_MIN_DATA_SIZE.
      control: add a new control opcode CTDB_CONTROL_SCHEDULE_FOR_DELETION
      server: implement a new control SCHEDULE_FOR_DELETION to fill the delete_queue.
      vacuum: add ctdb_local_schedule_for_deletion()
      client: add accessor function ctdb_header_from_record_handle().
      test: send SCHEDULE_FOR_DELETION control from randrec test.
      daemon: fill ctdb->ctdbd_pid early
      server: create a server variant ctdb_ltdb_store_server() of ctdb_ltdb_store().
      server: Use the ctdb_ltdb_store_server() in the ctdb daemon for non-persistent dbs
      ctdb_ltdb_store_server: delete an empty record that is safe to delete instead of storing locally.
      ctdb_ltdb_store_server: implement fastpath vacuuming deletion based on VACUUM_MIGRATED flag.
      ctdb_ltdb_store_server: always store the data when ctdb_ltdb_store() is called from the client
      ctdb_ltdb_store_server: Improve debug message in ctdb_ltdb_store when store or delete fails.
      ctdb_ltdb_store_server: add ability to send SCHEDULE_FOR_DELETION control to ctdb_ltdb_store.
      ctdb_private.h: add record flag CTDB_REC_FLAG_AUTOMATIC
      ltdb: add the CTDB_REC_FLAG_AUTOMATIC to the initial header in ctdb_ltdb_fetch()
      ctdb_ltdb_store_server: honour the AUTOMATIC record flag
      server: add a comment explaining the call redirect logic in ctdb_call_send_redirect().
      vacuum: raise a debug level from INFO to DEBUG
      vacuum: refactor insert_record_into_delete_queue out of ctdb_control_schedule_for_deletion
      vacuum: use insert_record_into_delete_queue in ctdb_local_schedule_for_deletion.
      vacuum: fix a comment typo
      New version 1.2.24.
      ctdb.init: check for availability of "tdbtool check" and "tdbdump"
      ctdb.init: print a warning when tdbdump is found but tdbtoo or "tdbtool check" is not available
      packaging: remove the dependency to tdbtool and tdbdump from the spec file
      build "ltdbtool" in "make all"
      install ltdbtool with "make install"
      install the ltdbtool manpage with "make install"
      packaging: add ltdbtool and its manpage to the RPM
      Add a tunable "AllowClientDBAttach" with default value 1.

Ronnie Sahlberg (308):
      Merge commit 'rusty/master'
      Add a code-style document.
      remove the "ctdb freeze" debugging command
      iupdate the docs that ctdb freeze is no more
      Merge remote branch 'martins/master'
      Update a log message to reflect that this does no longer only happen
      Create a new command "ctdb sync"   that isd just an alias for "ctdb ipreallocate"
      Merge commit 'rusty/libctdb-new' into foo
      We use eventloop nesting in a couple of places, notably the sync
      update the example for the new signature of
      Add a new "ctdb addtickle" command to manually add tickles to ctdbd
      Remove the structure ctdb_control_tcp_vnn since this is identical to the structure ctdb_tcp_connection.
      Add machinereadable output for the "ctgdb gettickles <ip>" command
      On RHEL,    "service nfs stop;service nfs start"  and "service nfs restart"
      Merge commit 'rusty/vacuum-fix-master'
      Merge commit 'rusty/ports-from-1.0.112' into foo
      We need the deprecated talloc_append_string() for now
      Dont use the deprecated talloc_append_string()
      make it possible to "ctdb gettickle" to only list tickles for a certain
      add a new commandline flag -v to enable verbose output
      ctdb ip is very busy.
      Revert "tools/ctdb: add PartiallyOnline state for "ctdb status" and "ctdb status -Y""
      Revert "version: generate RPM version from git"
      initial release for the 1.2 branch
      Dont set next_interval to 0.
      Dont set next_interval to 0.
      move the directives to build the devel file to the end of the specfile
      move the directives to build the devel file to the end of the specfile
      bump to -2 after fixing the specfile bug with wrong dependencies
      Add a command "ctdb pfetch <db> <record>" to read a record from
      get rid of two compiler warnings
      add a command to write a record to a persistent database
      Add a command "ctdb pfetch <db> <record>" to read a record from
      get rid of two compiler warnings
      add a command to write a record to a persistent database
      change "ctdb pfetch" to take an optional third argument
      change "ctdb pfetch" to take an optional third argument
      run the "init" event before we freeze the databases
      run the "init" event before we freeze the databases
      When "ctdb pfetch" creates a new file, make sure we set some initial sane mode bits
      When "ctdb pfetch" creates a new file, make sure we set some initial sane mode bits
      Dont initialize the domain socket for commands that do not require/use
      add a new command "ctdb tfetch" that can read a record straight out of the
      add a new command "ctdb tfetch" that can read a record straight out of the
      the tfetch command can be used without the daemon running, so flag it as such.
      the tfetch command can be used without the daemon running, so flag it as such.
      Add a configuration database, implemented as a persistent database.
      Add a configuration database, implemented as a persistent database.
      Add a new event "ipreallocated"
      Remove the dependency on the underlying cluster filesystem for handling
      remove the mention of a tickle and statd directory in shared storage now that we are removing these and migrating to store the data inside ctdbd or persistent databases
      Merge commit 'martins/master' into 1.2
      we no longer have a 61.nfstickle script
      remove 61.nfstickles from the makefile
      new version 1.2.3
      ouch,   the ordering of the constants and the strings must be kept in sync
      ouch, remove a dummy debug printout that snuck in there somehow
      new version 1.2.4
      dont print a lot of log information about shutting down vsftpd
      make sure all statd state directories exist before we try to reference them
      When memory allocations for recovery fails,
      Dont store temporary runtime data in $CTDB_BASE/state
      Change how NATGW is configured to allow special nodes that do not have
      Dont try to read the nodemap from the daemon for "ctdb listnodes"
      new version 1.2.5
      remove an unused variable
      Implement a new function GETNODEMAP in libctdb.
      Add two new server types to the server_id structure.
      define and reserve a range of ctdb message ports for use by nfs and iscsi servers
      Update the comment for the range reserved for SAMBA and
      add a new serverid to send a message everytime an ip address is taken on the local node
      adda GETPUBLICIPS control to libctdb and use this in the test example
      set up a handler to catch and log debug messages from the tevent layer
      update/improve the log message related to rerecovery timeouts
      Add back monitoring for time skips, forward as well as backward.
      Create macros to update the statistics counters and use these macros
      Add a new statistics structure to keep the current running statistics
      Add rolling statistics that are collected across 10 second intervals.
      Create a tunable for how often to collect rolling statistics and initialize it to 1 second
      add a machinereadable version of ctdb stats/statistics
      when printing machinereadable statistics only print the header with the fieldnames once
      Dont log a normal vacuuming message about a missing record and using default vacuuming intervals as an error.
      get rid of the "ctdb setflags" command since
      change the hash function to use the much better Jenkins hash
      Spotted by rusty.
      dont stop checking interfaces after the first bond device
      Update the default hash size to be 100001 instead of 10000
      Update latency countes to show min/max and average
      move extracting the config from config.tdb for public addresses
      New version 1.2.6
      Make sure the statd directory exist before trying to access the
      Remove a debug message "Timed out waiting ..."
      try to restart NFS LOCKD if it failed to start
      If tdb_open() fails when trying to open the vacuuming database,
      remove checking for filesystems and filesystem health from the cnfs script.
      New version 1.2.7
      Add support to create TDB databases using the new jenkins hash.
      new version 1.2.8
      Drop the loglevel of the "reqid wrap" developer debug message to DEBUG
      Redirect the output from 00.ctdb pfetch to stdout.
      When shuttind down, we always unconditionally try to remove the natgw address
      during shutdown there is a window after we have stopped TCP and disconnected from all other nodes but before we have stopped all processing.
      Both nfs and nfslock scripts can fail under redhat in very rare situations.
      New version 1.2.9
      when creating/adding a public ip, set the initial interface to be the first interface specified
      dont delete all ips from the system during the initial "init" event
      change the default for how long to waqit before dropping all ips to 120 seconds
      Add a new tunable : DisableIPFailover that when set to non 0
      dont check the public ip assignment or if even we are hosting them and shouldnt
      when we load the public address file,  at the same time check if we are already hosting the public address, if so, set ourselves up as the pnn for that address
      delay loading the public ip address file until after we have started the transport and discovered ouw own pnn number
      delete from old interface before adding to new interface
      this stuff is just so fragile  that it will enter infinite recovery and fail loops
      Dont check remote ip allocation if public ip mgmt is disabled
      change the takeover script timeout to 9 seconds from 5
      Dont exit the update ip function if the old and new interfaces are the same
      initialize the statistics to the current time, not start of epoch
      New version 1.2.10
      add a new support function ctdb_check_counter_equal()
      Dont pollute the logs with a "file not found" message
      add an explicit _is_managed_service to iscsi eventscript
      update autostart/stop to work for samba
      new version 1.2.11
      When we are no longer the natgw master, dont put the natgw ip on loopback.
      new version 1.2.12
      dont try starting samba through the "init" event
      new version 1.2.13
      during ip allocation, there are failure modes where a node might hold a ip address
      add a missing part of the import of the previous ganesha patch
      Add 60.ganesha to what gets installed by make install as well as by the RPM
      Remove LACOUNT and LACCESSOR and migrate the records immediately.
      change one of the reserved words in the ctdb ltdb header to be a flags field
      Add two new flags for the ltdb header.
      new version 1.2.14
      add a new ctdb_ltdb function to delete a record in a normal database
      add new command line functions
      Add a new header flag for "migrated with data" and set this to 1
      only run "serverid wipe" if we are actually running samba.
      When assigning the single-public-ip during startup,
      ctdb addip:
      Revert "Add a new header flag for "migrated with data" and set this to 1"
      Revert "server: when we migrate off a record with data, set the MIGRATED_WITH_DATA flag"
      New version 1.2.15
      Dont run net serverid wipe in the background
      New version 1.2.16
      60.nfs Check if we have rpc.statd and if not, skip checking for statd
      Revert scheduling back to use real-time processes
      Add ctdb_fork(0 which will fork a child process and drop the real-time
      recoverd: avoid triggering a full recovery if just some ip allocation
      LIBCTDB uninitialized inqueue element
      STATD is 100027    not 1000247
      IPALLOCATION : If the node is held pinned down in "init" state
      ADDIP failure
      We can not always rely on the recovery daemon pinging us in a timely manner
      LIBCTDB: add support for traverse
      change Christinas previous patch to only perform the check/logging
      New version 1.2.17
      ctdb: hold transaction locks during freeze, mark during recover.
      TDB : Fix for a deadlock with transaction lock and lockall/lockallmark
      Add a new test tool that fetch locks a record and then blocks until it receives
      Compile fix
      LockWait congestion.
      If the node is stopped,   put a log entry in /var/log/* to indicate this is why we never become ready
      New version 1.2.19
      We default to non-deterministic ip now where ips are "sticky" and dont change
      New version 1.2.20
      Dont allow client processes to attach to databases while we are still in recovery mode.
      Revert "Dont allow client processes to attach to databases while we are still in recovery mode."
      ctdb_req_dmaster from non-master
      New version 1.2.21
      Deferred attach : at early startup, defer any db attach calls until we are out of recovery.
      ATTACH_DB: simplify the code slightly and change the semantics to only
      new version 1.2.23
      If/when the recovery daemon terminates unexpectedly, try to restart it again from the main daemon instead of just shutting down the main deamon too.
      Restart recovery dameon if it looks like it hung.
      Dont allow clients to connect to databases untile we are well past and through
      Vacuuming: initialize a variable to avoid a harmless valgrind hit
      IP reallocation. If a public address is already hosted on the node when we startup, log a warning message but do not cause the recovery to fail.
      New version 1.2.25
      Deferred attach: create the timed event as a child context of the da context we want to delete.
      new version 1.2.26
      New version 1.2.27
      This needs more testing first
      Merge branches '1.2' and '1.2' of into 1.2
      NATGW: dont set arp_ignore in 11.natgw anymore since we no longer
      IFACE handling. Assume links are always good on nstartup (they almost always
      New version 1.2.28
      If the eventscript is finished but state->ctdb is NULL,
      bonding mode 4 monitoring:
      Cleanup of logging messages/spamming
      Dont call the UPDATE event if both old and new interface is the same.
      Remove logging of spam/errors from the 10.interfrace
      Dont exit from checking interfaces once we have found one interface that is not
      If samba fails to start for some reason, make this cause the startup event to fail too,   so that ctdbd will re-try the startup event later.
      New version 1.2.29
      Remove all checking of GPFS from ctdb_diagnostics
      When using multiple VLANs, some funky stuff can sometimes happen when
      New version 1.2.30
      Remove a benign by annoying log message that will be logged after an interface that has been in use has later been removed and is no longer referenced by any public addresses.
      change the name for the key for the record where we stoire the public address config from public-addresses... to public_addresses...
      When trying to re-balance the ip assignment and shuffle ips from
      Add log output to wipedb and backupdb
      new version 1.2.31
      Update the delip command
      new version 1.2.32
      Change the message when we start the daemon to "CTDB starting on node"
      remove a log message we dont need about "allow clients to attach to databases"
      remove a non-error logmessage about persistent databases being healthy, as expected
      remove log message we dont need
      Remove a log message about setting linkstate for an unknown interface.
      check the shares if they are available before we decide to try to restart nfs
      increase the persistent timeout to make people happier
      make the persistent even longer for lvs to make people even happier
      Add new eventscript 40.fs_use that can be used to monitor file system use and flag a node unhealthy when they become full
      document the new check for file system use
      When starting and stopping ctdb through the init-script, make sure we first clear all public ips bvefore we start the daemon, in case they are still hanging around since a previous kill -9   and also make sure we drop them after we have stopped the deamon when shutting down
      remove the nfs share check completely from the 1.2 branch
      Change the default for ip failover to be LCP2 and not DeterministicIPs
      new version 1.2.33
      dont use a too big persistence timeout value
      Revert "Add new eventscript 40.fs_use that can be used to monitor file system use and flag a node unhealthy when they become full"
      Add a new command 'ctdb checktcpport <port>'
      Sometimes external services will activate Samba in ctdb without doing hte proper and correct
      New version 1.2.34
      Drop loglevel for a tevent message from FATAL to ERROR
      new version 1.2.35
      One of the entry points to release an ip reset the pnn field before invoking the eventscript.
      New version 1.2.36
      new version 1.2.37
      new version 1.2.38
      Eventscripts: Add special -ECANCELED status for monitor events that are cancelled
      New version : 1.2.39
      ReadOnly records: Add a new RPC function FETCH_WITH_HEADER.
      ReadOnly: Add helper functions to manipulate a TDB_DATA as a bitmap for nodes that we are tracking as having a readonly delegation
      ReadOnly: Add test tool to validate the functions to manipulate and enumerate the bitmap of nodes to where we have readonly delegations
      ReadOnly: Add clientside functions to send the UPDATE_RECORD control
      ReadOnly: add a new test tool that does a fetchlock on a record, then bunps the RSN by 10 and writes the new content to the record as sprintf("%d", rsn)
      ReadOnly: Add 4 new record flags to handle read only delegation and revoking of delegations
      ReadOnly: Add printing of the record flags when we are traversing a database to print its content.
      ReadOnly: Add a new command 'ctdb cattdb'. This fucntion differs from 'ctdb catdb' in that 'cattdb' will always traverse the local tdb file only, while 'catdb' does a cluster traverse.
      ReadOnly: After performing a recovery, clear out all flags related to readonly delegations and revoke
      ReadOnly: Add "readonly" flag to the ctdb_db_context to indicate if this database supports readonly operations or not. Add a private lock-less tdb file to the ctdb_db_context to use for tracking delegarions for records
      ReadOnly: After recovering all databases, make sure to clear out the tracking database used to track delegations and revoke. This is because the recovery will implicitely result in a revoke of all delegations.
      ReadOnly: Add an extra flag to ctdb_call_local to specify whether we want to write the record and header back to the tdb (for example we do when performing dmaster migrations)
      ReadOnly: Add functions to register CALLs to a context used to handle deferal of processing of CALL commands.
      ReadOnly: Add a function to start a revoke of all delegations for a record.
      ReadOnly: Add a new flag to call request packet to indicate that the client wants a readonly delegation
      ReadOnly: When releasing all deferred calls that blocked during revoke of all previous delegations, add a 1 second grace/delay for any new readonly delegation requests so that the read-write fetch-lock porcess has a chance to make progress
      ReadOnly: Once recovery has finished, make sure to free all revoke child processes and trigger the destructors for all deferred calls to re-queue the original packets to the input packet processing function
      ReadOnly: Add processing for ReadOnly delegation requests and revoke requests to the processing loop for CALL packets we receive from different nodes.
      ReadOnly: Add handlign of readonly requests readwrite requests, delegations and revoking of delegation to the processing loop for CALL requests coming in from a local client via domain socket
      ReadOnly: Add a ctdb_ltdb_fetch_readonly() helper function
      ReadOnly: Add clientside code to fetch readonly records
      ReadOnly: Add a test tool to fetch a record, requesting a readonly delegation and lock the record once
      ReadOnly: Add a test tool that requests a readonly delegation in a loop
      ReadOnly: Change the update_record test tool to use the new fetchlock routine that can do either normal or readonly fetchlock
      ReadOnly: When the client wants a readwrite lock but the local node is the dmaster and also have delegations active we must send a CALL to the local daemon to trigger it to revoke the delegations
      ReadOnly: clear out the tracking record once a revoke is completed
      ReadOnly: add description of readonly records
      ReadOnly: Check the readonly flag instead of whether the tdb pointer is NULL or not
      ReadOnly: Change the ctdb_db structure to keep a uint8_t for flags instead of a boolean for
      ReadOnly: add a readonly flag to the getdbmap control and show the readonly setting in ctdb getdbmap output
      ReadOnly: add a new control to activate readonly lock capability for a database.
      ReadOnly: update the documentation about readonly locks
      ReadOnly: Rename the function ctdb_ltdb_fetch_readonly() to ctdb_ltdb_fetch_with_header() since this is what it actually does.
      fix some compiler warnings for the test tools
      ReadOnly: revokechild_active is a list, not a context.
      ReadOnly: Dont update the record header from the calling client. While it is convenient since it avoids having to create a child process from the main dameon for writing the updated record it makes the cleitn more complex.
      ReadOnly DOCS: update the docs for readonly delegations to remove the passage that records are written/updated by the client
      ReadOnly: fix bug writing incorrect amount of data in delegated record
      ReadOnly: add readonly record lock requests to libctdb
      ReadOnly: If record does not exist, upgrade to write-lock
      libctdb: dont allow ctdb_writerecord() for readonly records
      ReadOnly: update the loop test tool to print number of fetches per second
      New version 1.2.40
      ReadOnly: Do not force all normal database to READONLY.
      Eventscripts: remove the horrible horrible circular reference between state and callback since these two structures do not even share the same parent talloc context.
      make tdb valgrind-happy
      Make KILLTCP structure a child of VNN so that it is freed at the same time
      When adding ips to nodes, set up a deferred rebalance for the whole node to trigger after 60 seconds in case the normal ipreallocated is not sufficient to trigger rebalance.
      Add a tunable variable to control how long we defer after a ctdb addip until we force a rebalance and try to failback addresses onto this node
      Vacuuming: change default timeout to 120 seconds
      READONLY: skip vacuuming or deleting records with readonly delegations.
      Niceify the readonlyrecord API. Dont force clients to be exposed to the fetch_with_header function
      READONLY:  allow specifying the db name for setdbreadonly instead of just the hash
      READONLY: when updating a remote node to revoke a delegation, make sure
      READONLY: only send a control to schedule fast-vacuuming from child context iff we have a connection open to the main daemon
      READONLY: readonly fetch collapse. Make sure we only keep one single readonly fetch for a record in flight at a time.
      STATISTICS: add total counts for number of delegations and number of revokes
      Revert "READONLY: readonly fetch collapse. Make sure we only keep one single readonly fetch for a record in flight at a time."
      readonly, dont allow any kind of fast vacuum for ro delegated records
      new version 1.2.41
      ReadOnly: Only restrict the readonly sanity/paranoia check that only allows
      new version 1.2.42
      New version 1.2.43
      New version 1.2.44
      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

Rusty Russell (46):
      libctdb: removed unused lock field from struct ctdb_db
      libctdb: fix uninitialized field usage on ctdb_attach failure path
      libctdb: synchronous should be using ctdb_cancel to kill unfinished requests.
      libctdb: check ctdb_request_free & ctdb_cancel used appropriately.
      libctdb: ctdb_service() never returns < 0
      libctdb: fix writerecord() to actually write the record.
      libctdb: fix io_elem resource leak on realloc failure.
      libctdb: implement ctdb_disconnect and ctdb_detachdb
      libctdb: implement synchronous readrecordlock interface.
      libctdb: test infrastructure
      libctdb: test: logging enhancement
      libctdb: test: improve logging of failure paths
      libctdb: test: --no-failtest
      libctdb: test: add database save and restore
      libctdb: test: add readrecordlock support
      libctdb: test: run.sh script
      ctdb: fix crash on "ctdb scriptstatus --events=releaseip"
      config: wrap iptables in flock to avoid concurrancy.
      libctdb: add synchronous message handling and unregister, with tests.
      tdb: fix short write logic in tdb_new_database
      tdb: remove unused variable in tdb_new_database().
      tdb: Fix tdb_check() to work with read-only tdb databases.
      tdb: workaround starvation problem in locking entire database.
      talloc: update to 2.0.3 version from SAMBA
      event: Update events to latest Samba version 0.9.8
      freeze: abort vacuuming when we're going to freeze.
      vacuum: fix crash on vacuum abort
      vacuum: disabling vacuuming during a freeze
      takeover: prevent crash by avoiding free in traverse on RST timeout
      logging: give a unique logging name to each forked child.
      idtree: fix right shift of signed ints, crash on large ids on AIX
      tdb: make check more robust against recovery failures.
      tdb: fix tdb_check() on read-only TDBs to actually work.
      tdb: fix tdb_check() on other-endian tdbs.
      tdb: put example hashes into header, so we notice incorrect hash_fn.
      tdb: increment version to 1.2.4
      tdb: add Bob Jenkins lookup3 hash as helper hash.
      tdb: automatically identify Jenkins hash tdbs
      tdb: TDB_INCOMPATIBLE_HASH, to allow safe changing of default hash.
      tdb: fix non-WAF build, commit 1.2.6 ABI file.
      idtree: fix overflow for v. large ids on allocation and removal
      tdb: expose transaction lock infrastructure for ctdb
      ctdb_lockwait: create overflow queue.
      ctdbd: fix lock held on error ("ctdb_req_dmaster from non-master.")
      ctdbd: call tdb_reopen_all() in freeze child.
      eventscript: fix callback after free

Stefan Metzmacher (3):
      config/interface_modify.sh: before calling a script check if it exists and is executable
      config/interface_modify.sh: do the echo before running the script
      events/10.interface: we need to mark interfaces as "up" if we don't know how to monitor them

Volker Lendecke (3):
      Correctly set docdir
      tdb: add restore

root (1):
      ctdbd_pid : dont assign the ctdbd_pid until we have finished startup and thus dont log warnings about 'Handling event ...' until startup has finished.


CTDB repository

More information about the samba-cvs mailing list