From: Date: July 3 2009 8:34am Subject: bzr commit into mysql-5.1-telco-7.0 branch (jonas:2946) List-Archive: http://lists.mysql.com/commits/77906 Message-Id: <20090703063423.06BEF91B607@perch.localdomain> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_f2quBqnJ1eZhA78Vy4HKZA)" --Boundary_(ID_f2quBqnJ1eZhA78Vy4HKZA) MIME-version: 1.0 Content-type: text/plain; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Content-disposition: inline #At file:///home/jonas/src/telco-6.4/ based on revid:jonas@stripped 2946 Jonas Oreland 2009-07-03 [merge] merge 63 to 70 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 === modified file 'storage/ndb/include/mgmapi/mgmapi_config_parameters.h' --- a/storage/ndb/include/mgmapi/mgmapi_config_parameters.h 2009-06-01 15:58:26 +0000 +++ b/storage/ndb/include/mgmapi/mgmapi_config_parameters.h 2009-07-03 06:34:01 +0000 @@ -233,6 +233,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:09:35 +0000 +++ b/storage/ndb/include/ndbapi/ndb_cluster_connection.hpp 2009-07-03 06:34:01 +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-06-26 13:33:01 +0000 +++ b/storage/ndb/src/mgmsrv/ConfigInfo.cpp 2009-07-03 06:34:01 +0000 @@ -1927,6 +1927,20 @@ const ConfigInfo::ParamInfo ConfigInfo:: STR_VALUE(MAX_INT_RNIL) }, + { + 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 15:21:45 +0000 +++ b/storage/ndb/src/ndbapi/ClusterMgr.cpp 2009-07-03 06:34:01 +0000 @@ -70,6 +70,7 @@ ClusterMgr::ClusterMgr(TransporterFacade ndbSetOwnVersion(); clusterMgrThreadMutex = NdbMutex_Create(); waitForHBCond= NdbCondition_Create(); + m_auto_reconnect = -1; DBUG_VOID_RETURN; } @@ -150,8 +151,9 @@ void ClusterMgr::doStop( ){ DBUG_ENTER("ClusterMgr::doStop"); Guard g(clusterMgrThreadMutex); - if(theStop) + if(theStop == 1){ DBUG_VOID_RETURN; + } void *status; theStop = 1; @@ -592,6 +594,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-27 15:21:45 +0000 +++ b/storage/ndb/src/ndbapi/ClusterMgr.hpp 2009-07-03 06:34:01 +0000 @@ -91,6 +91,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:12:44 +0000 +++ b/storage/ndb/src/ndbapi/TransporterFacade.cpp 2009-07-03 06:34:01 +0000 @@ -863,6 +863,17 @@ TransporterFacade::configure(NodeId node 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; + } + // Configure timeouts Uint32 timeout = 120000; for (iter.first(); iter.valid(); iter.next()) @@ -2047,7 +2058,6 @@ SignalSender::sendSignal(Uint16 nodeId, return ss; } - Uint32* SignalSectionIterator::getNextWords(Uint32& sz) { @@ -2315,3 +2325,15 @@ int main(int arg, char** argv) return 0; } #endif + +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 15:21:45 +0000 +++ b/storage/ndb/src/ndbapi/TransporterFacade.hpp 2009-07-03 06:34:01 +0000 @@ -161,6 +161,8 @@ public: NdbWaiter* rem_last_from_cond_wait_queue(); // 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; /* TransporterCallback interface. */ void deliver_signal(SignalHeader * const header, @@ -192,7 +194,6 @@ public: theTransporterRegistry->reset_send_buffer(node, should_be_empty); } - 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 15:21:45 +0000 +++ b/storage/ndb/src/ndbapi/ndb_cluster_connection.cpp 2009-07-03 06:34:01 +0000 @@ -833,5 +833,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; --Boundary_(ID_f2quBqnJ1eZhA78Vy4HKZA) MIME-version: 1.0 Content-type: text/bzr-bundle; CHARSET=US-ASCII; name="bzr/jonas@stripped" Content-transfer-encoding: 7BIT Content-disposition: inline; filename="bzr/jonas@stripped" # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: jonas@stripped # target_branch: file:///home/jonas/src/telco-6.4/ # testament_sha1: 82148aa0f644fcac2a8b732a308496cde889dc47 # timestamp: 2009-07-03 08:34:22 +0200 # source_branch: file:///home/jonas/src/telco-6.3/ # base_revision_id: jonas@stripped # # Begin bundle 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 i7kinChIYz9+FYA= --Boundary_(ID_f2quBqnJ1eZhA78Vy4HKZA)--