List:Commits« Previous MessageNext Message »
From:Jonas Oreland Date:July 3 2009 11:39pm
Subject:bzr push into mysql-5.1-telco-6.3 branch (jonas:2994 to 2995)
View as plain text  
 2995 Jonas Oreland	2009-07-03 [merge]
      merge 63-main

    modified:
      storage/ndb/include/mgmapi/mgmapi_config_parameters.h
      storage/ndb/include/ndbapi/ndb_cluster_connection.hpp
      storage/ndb/src/mgmsrv/ConfigInfo.cpp
      storage/ndb/src/ndbapi/ClusterMgr.cpp
      storage/ndb/src/ndbapi/ClusterMgr.hpp
      storage/ndb/src/ndbapi/TransporterFacade.cpp
      storage/ndb/src/ndbapi/TransporterFacade.hpp
      storage/ndb/src/ndbapi/ndb_cluster_connection.cpp
 2994 Frazer Clement	2009-07-03
      WL4675 - improve unique index test coverage and testability

    modified:
      storage/ndb/test/include/NDBT_Test.hpp
      storage/ndb/test/ndbapi/testIndex.cpp
      storage/ndb/test/src/NDBT_Test.cpp
      storage/ndb/test/tools/create_index.cpp
=== modified file 'storage/ndb/include/mgmapi/mgmapi_config_parameters.h'
--- a/storage/ndb/include/mgmapi/mgmapi_config_parameters.h	2009-05-27 12:11:46 +0000
+++ b/storage/ndb/include/mgmapi/mgmapi_config_parameters.h	2009-07-02 20:47:17 +0000
@@ -222,6 +222,7 @@
 #define CFG_MAX_SCAN_BATCH_SIZE       800
 #define CFG_BATCH_BYTE_SIZE           801
 #define CFG_BATCH_SIZE                802
+#define CFG_AUTO_RECONNECT            803
 
 /**
  * Internal

=== modified file 'storage/ndb/include/ndbapi/ndb_cluster_connection.hpp'
--- a/storage/ndb/include/ndbapi/ndb_cluster_connection.hpp	2009-06-13 19:06:06 +0000
+++ b/storage/ndb/include/ndbapi/ndb_cluster_connection.hpp	2009-07-02 20:47:17 +0000
@@ -149,6 +149,13 @@ public:
   int get_latest_error() const;
   const char *get_latest_error_msg() const;
 
+  /**
+   * Enable/disable auto-reconnect
+   * @param value 0 = false, 1 = true
+   */
+  void set_auto_reconnect(int value);
+  int get_auto_reconnect() const;
+
 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
   int get_no_ready();
   const char *get_connectstring(char *buf, int buf_sz) const;

=== modified file 'storage/ndb/src/mgmsrv/ConfigInfo.cpp'
--- a/storage/ndb/src/mgmsrv/ConfigInfo.cpp	2009-05-27 12:11:46 +0000
+++ b/storage/ndb/src/mgmsrv/ConfigInfo.cpp	2009-07-02 20:47:17 +0000
@@ -1777,6 +1777,20 @@ const ConfigInfo::ParamInfo ConfigInfo::
   },
 
 
+  {
+    CFG_AUTO_RECONNECT,
+    "AutoReconnect",
+    "API",
+    "Specifies if an api node should reconnect when fully disconnected from cluster",
+    ConfigInfo::CI_USED,
+    false,
+    ConfigInfo::CI_BOOL,
+    "true",
+    "false",
+    "true"
+  },
+
+
   /****************************************************************************
    * MGM
    ***************************************************************************/

=== modified file 'storage/ndb/src/ndbapi/ClusterMgr.cpp'
--- a/storage/ndb/src/ndbapi/ClusterMgr.cpp	2009-05-27 12:11:46 +0000
+++ b/storage/ndb/src/ndbapi/ClusterMgr.cpp	2009-07-02 20:47:17 +0000
@@ -70,6 +70,7 @@ ClusterMgr::ClusterMgr(TransporterFacade
   noOfConnectedNodes= 0;
   theClusterMgrThread= 0;
   m_connect_count = 0;
+  m_auto_reconnect = -1;
   m_cluster_state = CS_waiting_for_clean_cache;
   DBUG_VOID_RETURN;
 }
@@ -138,7 +139,7 @@ void
 ClusterMgr::doStop( ){
   DBUG_ENTER("ClusterMgr::doStop");
   NdbMutex_Lock(clusterMgrThreadMutex);
-  if(theStop){
+  if(theStop == 1){
     NdbMutex_Unlock(clusterMgrThreadMutex);
     DBUG_VOID_RETURN;
   }
@@ -574,6 +575,11 @@ ClusterMgr::reportNodeFailed(NodeId node
       m_connect_count ++;
       m_cluster_state = CS_waiting_for_clean_cache;
     }
+
+    if (m_auto_reconnect == 0)
+    {
+      theStop = 2;
+    }
   }
   theNode.nfCompleteRep = false;
   if(noOfAliveNodes == 0)

=== modified file 'storage/ndb/src/ndbapi/ClusterMgr.hpp'
--- a/storage/ndb/src/ndbapi/ClusterMgr.hpp	2009-05-26 18:53:34 +0000
+++ b/storage/ndb/src/ndbapi/ClusterMgr.hpp	2009-07-02 20:47:17 +0000
@@ -90,6 +90,7 @@ public:
   Uint32        getNoOfConnectedNodes() const;
   void          hb_received(NodeId);
 
+  int m_auto_reconnect;
   Uint32        m_connect_count;
 private:
   Uint32        m_max_api_reg_req_interval;

=== modified file 'storage/ndb/src/ndbapi/TransporterFacade.cpp'
--- a/storage/ndb/src/ndbapi/TransporterFacade.cpp	2009-05-28 09:09:21 +0000
+++ b/storage/ndb/src/ndbapi/TransporterFacade.cpp	2009-07-02 20:47:17 +0000
@@ -764,6 +764,17 @@ TransporterFacade::init(Uint32 nodeId, c
   if (!iter.get(CFG_BATCH_SIZE, &batch_size)) {
     m_batch_size= batch_size;
   }
+
+  Uint32 auto_reconnect=1;
+  iter.get(CFG_AUTO_RECONNECT, &auto_reconnect);
+
+  /**
+   * Keep value it set before connect (overriding config)
+   */
+  if (theClusterMgr->m_auto_reconnect == -1)
+  {
+    theClusterMgr->m_auto_reconnect = auto_reconnect;
+  }
   
   Uint32 timeout = 120000;
   iter.first();
@@ -1592,3 +1603,15 @@ SignalSender::sendSignal(Uint16 nodeId, 
 
   return ss;
 }
+
+void
+TransporterFacade::set_auto_reconnect(int val)
+{
+  theClusterMgr->m_auto_reconnect = val;
+}
+
+int
+TransporterFacade::get_auto_reconnect() const
+{
+  return theClusterMgr->m_auto_reconnect;
+}

=== modified file 'storage/ndb/src/ndbapi/TransporterFacade.hpp'
--- a/storage/ndb/src/ndbapi/TransporterFacade.hpp	2009-05-27 12:11:46 +0000
+++ b/storage/ndb/src/ndbapi/TransporterFacade.hpp	2009-07-02 20:47:17 +0000
@@ -153,6 +153,8 @@ public:
   // heart beat received from a node (e.g. a signal came)
   void hb_received(NodeId n);
 
+  void set_auto_reconnect(int val);
+  int get_auto_reconnect() const;
 private:
   void init_cond_wait_queue();
   struct CondWaitQueueElement {

=== modified file 'storage/ndb/src/ndbapi/ndb_cluster_connection.cpp'
--- a/storage/ndb/src/ndbapi/ndb_cluster_connection.cpp	2009-05-27 12:11:46 +0000
+++ b/storage/ndb/src/ndbapi/ndb_cluster_connection.cpp	2009-07-02 20:47:17 +0000
@@ -838,5 +838,17 @@ int Ndb_cluster_connection::set_timeout(
                              timeout_ms);
 }
 
+int
+Ndb_cluster_connection::get_auto_reconnect() const
+{
+  return m_impl.m_transporter_facade->get_auto_reconnect();
+}
+
+void
+Ndb_cluster_connection::set_auto_reconnect(int value)
+{
+  m_impl.m_transporter_facade->set_auto_reconnect(value);
+}
+
 template class Vector<Ndb_cluster_connection_impl::Node>;
 


Attachment: [text/bzr-bundle] bzr/jonas@mysql.com-20090703212218-ndsmz08vrwz7srmh.bundle
Thread
bzr push into mysql-5.1-telco-6.3 branch (jonas:2994 to 2995)Jonas Oreland3 Jul 2009