From: Date: July 3 2009 11:39pm Subject: bzr push into mysql-5.1-telco-6.3 branch (jonas:2994 to 2995) List-Archive: http://lists.mysql.com/commits/77952 Message-Id: <20090703213940.C002291B651@perch.localdomain> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_6PleeAGDM49g7v9VugFMWQ)" --Boundary_(ID_6PleeAGDM49g7v9VugFMWQ) MIME-version: 1.0 Content-type: text/plain; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Content-disposition: inline 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; --Boundary_(ID_6PleeAGDM49g7v9VugFMWQ) 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.3/ # testament_sha1: 1ec18f7feb82aa5ba4d208002c30586e8424dd36 # timestamp: 2009-07-03 23:39:40 +0200 # source_branch: file:///home/jonas/src/63-local/ # base_revision_id: frazer@stripped # # Begin bundle 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 --Boundary_(ID_6PleeAGDM49g7v9VugFMWQ)--