From: Date: November 1 2007 11:33am Subject: bk commit into 5.0 tree (msvensson:1.2540) BUG#32023 List-Archive: http://lists.mysql.com/commits/36839 X-Bug: 32023 Message-Id: <20071101103343.1CDFB30E918@pilot> 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(Parserprintln("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;