List:Commits« Previous MessageNext Message »
From:msvensson Date:November 1 2007 11:33am
Subject:bk commit into 5.0 tree (msvensson:1.2540) BUG#32023
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of msvensson. When msvensson does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2007-11-01 11:33:35+01:00, msvensson@stripped +2 -0
  Bug#32023 ndb_mgmd is slow to repsond when no nodes are up

  ndb/src/mgmsrv/Services.cpp@stripped, 2007-11-01 11:33:32+01:00, msvensson@stripped
+1 -1
    Only call 'updateStatus'(and forcing HB) once before printing
    node status 

  ndb/src/ndbapi/ClusterMgr.cpp@stripped, 2007-11-01 11:33:32+01:00, msvensson@stripped
+4 -1
    Only wait for reply to forced API_REGREQ if any signals
    has been sent

diff -Nrup a/ndb/src/mgmsrv/Services.cpp b/ndb/src/mgmsrv/Services.cpp
--- a/ndb/src/mgmsrv/Services.cpp	2007-02-22 19:33:58 +01:00
+++ b/ndb/src/mgmsrv/Services.cpp	2007-11-01 11:33:32 +01:00
@@ -923,7 +923,6 @@ printNodeStatus(OutputStream *output,
 		MgmtSrvr &mgmsrv,
 		enum ndb_mgm_node_type type) {
   NodeId nodeId = 0;
-  mgmsrv.updateStatus();
   while(mgmsrv.getNextNodeId(&nodeId, type)) {
     enum ndb_mgm_node_status status;
     Uint32 startPhase = 0, 
@@ -972,6 +971,7 @@ MgmApiSession::getStatus(Parser<MgmApiSe
   
   m_output->println("node status");
   m_output->println("nodes: %d", noOfNodes);
+  m_mgmsrv.updateStatus();
   printNodeStatus(m_output, m_mgmsrv, NDB_MGM_NODE_TYPE_NDB);
   printNodeStatus(m_output, m_mgmsrv, NDB_MGM_NODE_TYPE_MGM);
   printNodeStatus(m_output, m_mgmsrv, NDB_MGM_NODE_TYPE_API);
diff -Nrup a/ndb/src/ndbapi/ClusterMgr.cpp b/ndb/src/ndbapi/ClusterMgr.cpp
--- a/ndb/src/ndbapi/ClusterMgr.cpp	2007-05-09 15:02:59 +02:00
+++ b/ndb/src/ndbapi/ClusterMgr.cpp	2007-11-01 11:33:32 +01:00
@@ -222,7 +222,10 @@ ClusterMgr::forceHB()
       theFacade.sendSignalUnCond(&signal, nodeId);
     }
 
-    NdbCondition_WaitTimeout(waitForHBCond, theFacade.theMutexPtr, 1000);
+    /* Wait for nodes to reply - if any heartbeats was sent */
+    if (!waitForHBFromNodes.isclear())
+      NdbCondition_WaitTimeout(waitForHBCond, theFacade.theMutexPtr, 1000);
+
     waitingForHB= false;
 #ifdef DEBUG_REG
     ndbout << "Still waiting for HB from " << waitForHBFromNodes.getText(buf)
<< endl;
Thread
bk commit into 5.0 tree (msvensson:1.2540) BUG#32023msvensson1 Nov