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; i<MAX_NODES; i++)
+ for (Uint32 i = 1; i<MAX_NODES; i++)
{
if (c_error_9000_nodes_mask.get(i) &&
handles_this_node(i))
@@ -488,7 +488,7 @@ Trpman::execDUMP_STATE_ORD(Signal* signa
if (arg == 9005 && signal->getLength() == 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).
| Thread |
|---|
| • bzr push into mysql-5.5-cluster-7.2 branch (mikael.ronstrom:3669 to 3670) | Mikael Ronstrom | 21 Dec |