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 Oreland | 3 Jul 2009 |