inew version 1.0.66
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Mon, 24 Nov 2008 08:06:02 +0000 (19:06 +1100)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Mon, 24 Nov 2008 08:06:02 +0000 (19:06 +1100)
ddwq

include/ctdb_private.h
packaging/RPM/ctdb.spec
server/ctdb_recoverd.c
server/ctdbd.c

index cb83f8633812a65f874b7ea72366a9fd7ce01864..19f85f2e11e45eedb60b3bf21ba7b3a4a2c00f87 100644 (file)
@@ -407,6 +407,7 @@ struct ctdb_context {
        struct ctdb_call_state *pending_calls;
        struct ctdb_client_ip *client_ip_list;
        bool do_setsched;
+       bool do_checkpublicip;
        void *saved_scheduler_param;
        struct _trbt_tree_t *server_ids;        
        const char *event_script_dir;
index a3e8bb4b18a5b18c8c0d24bd566d5e55c6624463..d8bd76bcb301698995be0eac14fc52f0928ed368 100644 (file)
@@ -5,7 +5,7 @@ Vendor: Samba Team
 Packager: Samba Team <samba@samba.org>
 Name: ctdb
 Version: 1.0
-Release: 65
+Release: 66
 Epoch: 0
 License: GNU GPL version 3
 Group: System Environment/Daemons
@@ -120,6 +120,17 @@ fi
 %{_includedir}/ctdb_private.h
 
 %changelog
+* Mon Nov 24 2008 : Version 1.0.66
+ - Allow to change the recmaster even when we are not frozen.
+ - Remove two redundant SAMBA_CHECK variables from the sysconf example
+ - After a node failure it can take very long before some lock operations
+   ctdb needs to perform are allowed/works with gpfs again. Workaround this
+   by treating a hang/timeout as success.
+ - Dont override CTDB_BASE is fet in the shell already
+ - Always send keepalive packets regardless of whether the link is idle or not.
+ - Rewrite the disable/enable flag update logic to prevent a race between 
+   "ctdb disable/enable" and the recovery daemon when updating the flags to 
+   all nodes.
 * Thu Nov 13 2008 : Version 1.0.65
  - Update the sysconfig example: The default debug level is 2 (NOTICE) and not
    0 (ERROR)
index bef4bb15d8c7d5f28578564ed4c0e9aaa68a7bce..4faa2f898b2b5f784ee703927f0ad8ff59a8febf 100644 (file)
@@ -2510,9 +2510,11 @@ again:
        /* verify that we have all ip addresses we should have and we dont
         * have addresses we shouldnt have.
         */ 
-       if (verify_ip_allocation(ctdb, pnn) != 0) {
-               DEBUG(DEBUG_ERR, (__location__ " Public IPs were inconsistent.\n"));
-               goto again;
+       if (ctdb->do_checkpublicip) {
+               if (verify_ip_allocation(ctdb, pnn) != 0) {
+                       DEBUG(DEBUG_ERR, (__location__ " Public IPs were inconsistent.\n"));
+                       goto again;
+               }
        }
 
 
index b95aaca16e587738bf84b85098b307e3b539e12a..351948c9e5b371e7ce14066c5153dddc71dc6386 100644 (file)
@@ -47,6 +47,7 @@ static struct {
        int         no_recmaster;
        int         lvs;
        int         script_log_level;
+       int         no_publicipcheck;
 } options = {
        .nlist = ETCDIR "/ctdb/nodes",
        .transport = "tcp",
@@ -130,6 +131,7 @@ int main(int argc, const char *argv[])
                { "no-recmaster", 0, POPT_ARG_NONE, &options.no_recmaster, 0, "disable recmaster role on this node", NULL },
                { "lvs", 0, POPT_ARG_NONE, &options.lvs, 0, "lvs is enabled on this node", NULL },
                { "script-log-level", 0, POPT_ARG_INT, &options.script_log_level, DEBUG_ERR, "log level of event script output", NULL },
+               { "nopublicipcheck", 0, POPT_ARG_NONE, &options.no_publicipcheck, 0, "dont check we have/dont have the correct public ip addresses", NULL },
                POPT_TABLEEND
        };
        int opt, ret;
@@ -300,6 +302,8 @@ int main(int argc, const char *argv[])
 
        ctdb->do_setsched = !options.no_setsched;
 
+       ctdb->do_checkpublicip = !options.no_publicipcheck;
+
        if (getenv("CTDB_BASE") == NULL) {
                /* setup a environment variable for the event scripts to use
                   to find the installation directory */