From: Mikael Ronstrom Date: December 20 2011 1:57pm Subject: bzr push into mysql-5.5-cluster-7.2 branch (mikael.ronstrom:3669 to 3670) List-Archive: http://lists.mysql.com/commits/142204 Message-Id: <201112201358.pBKDw62G001907@dator6> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3670 Mikael Ronstrom 2011-12-20 ROUTE_ORD could use nodeId == 0, handle this before calling getReceiveThreadId modified: storage/ndb/src/kernel/blocks/trpman.cpp 3669 Mikael Ronstrom 2011-12-20 [merge] null merge === modified file 'storage/ndb/src/kernel/blocks/trpman.cpp' --- a/storage/ndb/src/kernel/blocks/trpman.cpp revid:mikael.ronstrom@stripped +++ b/storage/ndb/src/kernel/blocks/trpman.cpp revid:mikael.ronstrom@stripped @@ -183,7 +183,7 @@ Trpman::execCLOSE_COMREQ(Signal* signal) // Uint32 noOfNodes = closeCom->noOfNodes; jamEntry(); - for (unsigned i = 0; i < MAX_NODES; i++) + for (unsigned i = 1; i < MAX_NODES; i++) { if (NodeBitmask::get(closeCom->theNodes, i) && handles_this_node(i)) @@ -246,7 +246,7 @@ Trpman::execENABLE_COMREQ(Signal* signal MEMCOPY_NO_WORDS(nodes, enableComReq->m_nodeIds, NodeBitmask::Size); /* Enable communication with all our NDB blocks to these nodes. */ - Uint32 search_from = 0; + Uint32 search_from = 1; for (;;) { Uint32 tStartingNode = NodeBitmask::find(nodes, search_from); @@ -463,7 +463,7 @@ Trpman::execDUMP_STATE_ORD(Signal* signa CLEAR_ERROR_INSERT_VALUE; if (signal->getLength() == 1 || signal->theData[1]) { - for (Uint32 i = 0; igetLength() == 2 && ERROR_INSERTED(9004)) { Uint32 db = signal->theData[1]; - Uint32 i = c_error_9000_nodes_mask.find(0); + Uint32 i = c_error_9000_nodes_mask.find(1); if (handles_this_node(i)) { signal->theData[0] = i; @@ -594,7 +594,7 @@ Trpman::execDUMP_STATE_ORD(Signal* signa } if (arg == 9991) /* Unblock recv from all blocked */ { - for (Uint32 node = 0; node < MAX_NODES; node++) + for (Uint32 node = 1; node < MAX_NODES; node++) { if (!handles_this_node(node)) continue; @@ -806,6 +806,9 @@ TrpmanProxy::execROUTE_ORD(Signal* signa Uint32 dstRef = ord->dstRef; Uint32 nodeId = refToNode(dstRef); jamEntry(); + + if (!nodeId) + nodeId = getOwnNodeId(); Uint32 workerId = globalTransporterRegistry.getReceiveThreadId(nodeId); SectionHandle handle(this, signal); sendSignal(workerRef(workerId), GSN_ROUTE_ORD, signal, No bundle (reason: useless for push emails).