From: Mikael Ronstrom Date: December 20 2011 2:19pm Subject: bzr push into mysql-5.5-cluster-7.2 branch (mikael.ronstrom:3670 to 3672) List-Archive: http://lists.mysql.com/commits/142203 Message-Id: <201112201420.pBKEKq0W008439@dator6> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3672 Mikael Ronstrom 2011-12-20 Missed init of one entry in arrays for multiple receive threads modified: storage/ndb/src/common/transporter/TransporterRegistry.cpp 3671 Mikael Ronstrom 2011-12-20 Improved fix of getReceiveThreadId method modified: storage/ndb/src/common/transporter/TransporterRegistry.cpp storage/ndb/src/kernel/blocks/trpman.cpp 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 === modified file 'storage/ndb/src/common/transporter/TransporterRegistry.cpp' --- a/storage/ndb/src/common/transporter/TransporterRegistry.cpp revid:mikael.ronstrom@stripped +++ b/storage/ndb/src/common/transporter/TransporterRegistry.cpp revid:mikael.ronstrom@stripped @@ -139,7 +139,7 @@ TransporterRegistry::TransporterRegistry maxTransporters * sizeof(struct epoll_event)); } } - for (i = maxReceiveThreads + 1; i < MAX_NDBMT_RECEIVE_THREADS; i++) + for (i = maxReceiveThreads; i < MAX_NDBMT_RECEIVE_THREADS; i++) { m_epoll_events[i] = NULL; m_epoll_fd[i] = (int)-1; @@ -989,10 +989,12 @@ TransporterRegistry::wakeup() Uint32 TransporterRegistry::getReceiveThreadId(Uint32 node) { + /* Always use receive thread id 0 for own node and not used + node ids */ if (theTransporters[node]) return theTransporters[node]->receiver_thread_id(); else - return 255; /* Returns an impossible thread id simply */ + return 0; /* Returns an impossible thread id simply */ } Uint32 === 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 @@ -807,8 +807,6 @@ TrpmanProxy::execROUTE_ORD(Signal* signa 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).