List:Commits« Previous MessageNext Message »
From:jonas oreland Date:November 18 2011 9:20am
Subject:bzr push into mysql-5.1-telco-7.0-trpman branch (jonas.oreland:4676 to 4677)
View as plain text  
 4677 jonas oreland	2011-11-18
      70 - trpman - continue trial/error searching for bug - attempt 4

    modified:
      storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp
      storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp
      storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
      storage/ndb/src/kernel/vm/TransporterCallback.cpp
 4676 jonas oreland	2011-11-17
      70 - trpman - continue trial/error searching for bug - attempt 3

    modified:
      storage/ndb/src/kernel/vm/Configuration.cpp
      storage/ndb/src/kernel/vm/mt_thr_config.cpp
=== modified file 'storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp'
--- a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp	2011-11-16 16:23:37 +0000
+++ b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp	2011-11-18 09:20:34 +0000
@@ -19,7 +19,6 @@
 
 #include <Configuration.hpp>
 #include <kernel_types.h>
-#include <TransporterRegistry.hpp>
 #include <NdbOut.hpp>
 #include <NdbMem.h>
 #include <NdbTick.h>
@@ -33,13 +32,9 @@
 #include <signaldata/EventReport.hpp>
 #include <signaldata/TamperOrd.hpp>
 #include <signaldata/StartOrd.hpp>
-#include <signaldata/CloseComReqConf.hpp>
 #include <signaldata/SetLogLevelOrd.hpp>
 #include <signaldata/EventSubscribeReq.hpp>
 #include <signaldata/DumpStateOrd.hpp>
-#include <signaldata/DisconnectRep.hpp>
-#include <signaldata/EnableCom.hpp>
-#include <signaldata/RouteOrd.hpp>
 #include <signaldata/DbinfoScan.hpp>
 #include <signaldata/Sync.hpp>
 #include <signaldata/AllocMem.hpp>
@@ -91,17 +86,11 @@ Cmvmi::Cmvmi(Block_context& ctx) :
   mt_set_section_chunk_size();
 
   // Add received signals
-  addRecSignal(GSN_CONNECT_REP, &Cmvmi::execCONNECT_REP);
-  addRecSignal(GSN_DISCONNECT_REP, &Cmvmi::execDISCONNECT_REP);
-
   addRecSignal(GSN_NDB_TAMPER,  &Cmvmi::execNDB_TAMPER, true);
   addRecSignal(GSN_SET_LOGLEVELORD,  &Cmvmi::execSET_LOGLEVELORD);
   addRecSignal(GSN_EVENT_REP,  &Cmvmi::execEVENT_REP);
   addRecSignal(GSN_STTOR,  &Cmvmi::execSTTOR);
   addRecSignal(GSN_READ_CONFIG_REQ,  &Cmvmi::execREAD_CONFIG_REQ);
-  addRecSignal(GSN_CLOSE_COMREQ,  &Cmvmi::execCLOSE_COMREQ);
-  addRecSignal(GSN_ENABLE_COMREQ,  &Cmvmi::execENABLE_COMREQ);
-  addRecSignal(GSN_OPEN_COMREQ,  &Cmvmi::execOPEN_COMREQ);
   addRecSignal(GSN_TEST_ORD,  &Cmvmi::execTEST_ORD);
 
   addRecSignal(GSN_TAMPER_ORD,  &Cmvmi::execTAMPER_ORD);
@@ -109,6 +98,8 @@ Cmvmi::Cmvmi(Block_context& ctx) :
   addRecSignal(GSN_START_ORD,  &Cmvmi::execSTART_ORD);
   addRecSignal(GSN_EVENT_SUBSCRIBE_REQ, 
                &Cmvmi::execEVENT_SUBSCRIBE_REQ);
+  addRecSignal(GSN_CANCEL_SUBSCRIPTION_REQ,
+               &Cmvmi::execCANCEL_SUBSCRIPTION_REQ);
 
   addRecSignal(GSN_DUMP_STATE_ORD, &Cmvmi::execDUMP_STATE_ORD);
 
@@ -116,7 +107,6 @@ Cmvmi::Cmvmi(Block_context& ctx) :
   addRecSignal(GSN_NODE_START_REP, &Cmvmi::execNODE_START_REP, true);
 
   addRecSignal(GSN_CONTINUEB, &Cmvmi::execCONTINUEB);
-  addRecSignal(GSN_ROUTE_ORD, &Cmvmi::execROUTE_ORD);
   addRecSignal(GSN_DBINFO_SCANREQ, &Cmvmi::execDBINFO_SCANREQ);
 
   addRecSignal(GSN_SYNC_REQ, &Cmvmi::execSYNC_REQ, true);
@@ -179,11 +169,6 @@ Cmvmi::~Cmvmi()
   m_shared_page_pool.clear();
 }
 
-#ifdef ERROR_INSERT
-NodeBitmask c_error_9000_nodes_mask;
-extern Uint32 MAX_RECEIVED_SIGNALS;
-#endif
-
 void Cmvmi::execNDB_TAMPER(Signal* signal) 
 {
   jamEntry();
@@ -212,21 +197,12 @@ void Cmvmi::execNDB_TAMPER(Signal* signa
   }
 #endif
 
-#ifdef ERROR_INSERT
   if (signal->theData[0] == 9003)
   {
-    if (MAX_RECEIVED_SIGNALS < 1024)
-    {
-      MAX_RECEIVED_SIGNALS = 1024;
-    }
-    else
-    {
-      MAX_RECEIVED_SIGNALS = 1 + (rand() % 128);
-    }
-    ndbout_c("MAX_RECEIVED_SIGNALS: %d", MAX_RECEIVED_SIGNALS);
+    // Migrated to TRPMAN
     CLEAR_ERROR_INSERT_VALUE;
+    sendSignal(TRPMAN_REF, GSN_NDB_TAMPER, signal, signal->getLength(),JBB);
   }
-#endif
 }//execNDB_TAMPER()
 
 static Uint32 blocks[] =
@@ -250,6 +226,7 @@ static Uint32 blocks[] =
   PGMAN_REF,
   DBINFO_REF,
   DBSPJ_REF,
+  TRPMAN_REF,
   0
 };
 
@@ -631,11 +608,12 @@ Cmvmi::execEVENT_SUBSCRIBE_REQ(Signal *
 }
 
 void
-Cmvmi::cancelSubscription(NodeId nodeId){
+Cmvmi::execCANCEL_SUBSCRIPTION_REQ(Signal *signal){
   
   SubscriberPtr ptr;
+  NodeId nodeId = signal->theData[0];
+
   subscribers.first(ptr);
-  
   while(ptr.i != RNIL){
     Uint32 i = ptr.i;
     BlockReference blockRef = ptr.p->blockRef;
@@ -838,17 +816,20 @@ void Cmvmi::execSTTOR(Signal* signal)
 #ifdef ERROR_INSERT
     if (ERROR_INSERTED(9004))
     {
+      Uint32 tmp[25];
       Uint32 len = signal->getLength();
+      memcpy(tmp, signal->theData, sizeof(tmp));
+
       Uint32 db = c_dbNodes.find(0);
       if (db == getOwnNodeId())
         db = c_dbNodes.find(db);
-      Uint32 i = c_error_9000_nodes_mask.find(0);
-      Uint32 tmp[25];
-      memcpy(tmp, signal->theData, sizeof(tmp));
-      signal->theData[0] = i;
-      sendSignal(calcQmgrBlockRef(db),GSN_API_FAILREQ, signal, 1, JBA);
-      ndbout_c("stopping %u using %u", i, db);
+
+      DumpStateOrd * ord = (DumpStateOrd *)&signal->theData[0];
+      ord->args[0] = 9005; // Active 9004
+      ord->args[1] = db;
+      sendSignal(TRPMAN_REF, GSN_DUMP_STATE_ORD, signal, 2, JBB);
       CLEAR_ERROR_INSERT_VALUE;
+
       memcpy(signal->theData, tmp, sizeof(tmp));
       sendSignalWithDelay(reference(), GSN_STTOR,
                           signal, 100, len);
@@ -860,220 +841,6 @@ void Cmvmi::execSTTOR(Signal* signal)
   }
 }
 
-void Cmvmi::execCLOSE_COMREQ(Signal* signal)
-{
-  // Close communication with the node and halt input/output from 
-  // other blocks than QMGR
-  
-  CloseComReqConf * const closeCom = (CloseComReqConf *)&signal->theData[0];
-
-  const BlockReference userRef = closeCom->xxxBlockRef;
-  Uint32 requestType = closeCom->requestType;
-  Uint32 failNo = closeCom->failNo;
-//  Uint32 noOfNodes = closeCom->noOfNodes;
-  
-  jamEntry();
-  for (unsigned i = 0; i < MAX_NODES; i++)
-  {
-    if(NodeBitmask::get(closeCom->theNodes, i))
-    {
-      jam();
-
-      //-----------------------------------------------------
-      // Report that the connection to the node is closed
-      //-----------------------------------------------------
-      signal->theData[0] = NDB_LE_CommunicationClosed;
-      signal->theData[1] = i;
-      sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 2, JBB);
-      
-      globalTransporterRegistry.setIOState(i, HaltIO);
-      globalTransporterRegistry.do_disconnect(i);
-    }
-  }
-  if (requestType != CloseComReqConf::RT_NO_REPLY)
-  {
-    ndbassert((requestType == CloseComReqConf::RT_API_FAILURE) ||
-              ((requestType == CloseComReqConf::RT_NODE_FAILURE) &&
-               (failNo != 0)));
-    jam();
-    CloseComReqConf* closeComConf = (CloseComReqConf *)signal->getDataPtrSend();
-    closeComConf->xxxBlockRef = userRef;
-    closeComConf->requestType = requestType;
-    closeComConf->failNo = failNo;
-
-    /* Note assumption that noOfNodes and theNodes
-     * bitmap is not trampled above 
-     * signals received from the remote node.
-     */
-    sendSignal(QMGR_REF, GSN_CLOSE_COMCONF, signal, 19, JBA);
-  }
-}
-
-void Cmvmi::execOPEN_COMREQ(Signal* signal)
-{
-  // Connect to the specifed NDB node, only QMGR allowed communication 
-  // so far with the node
-
-  const BlockReference userRef = signal->theData[0];
-  Uint32 tStartingNode = signal->theData[1];
-  Uint32 tData2 = signal->theData[2];
-  jamEntry();
-
-  const Uint32 len = signal->getLength();
-  if(len == 2)
-  {
-#ifdef ERROR_INSERT
-    if (! ((ERROR_INSERTED(9000) || ERROR_INSERTED(9002)) 
-	   && c_error_9000_nodes_mask.get(tStartingNode)))
-#endif
-    {
-      globalTransporterRegistry.do_connect(tStartingNode);
-      globalTransporterRegistry.setIOState(tStartingNode, HaltIO);
-      
-      //-----------------------------------------------------
-      // Report that the connection to the node is opened
-      //-----------------------------------------------------
-      signal->theData[0] = NDB_LE_CommunicationOpened;
-      signal->theData[1] = tStartingNode;
-      sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 2, JBB);
-      //-----------------------------------------------------
-    }
-  } else {
-    for(unsigned int i = 1; i < MAX_NODES; i++ ) 
-    {
-      jam();
-      if (i != getOwnNodeId() && getNodeInfo(i).m_type == tData2)
-      {
-	jam();
-
-#ifdef ERROR_INSERT
-	if ((ERROR_INSERTED(9000) || ERROR_INSERTED(9002))
-	    && c_error_9000_nodes_mask.get(i))
-	  continue;
-#endif
-	globalTransporterRegistry.do_connect(i);
-	globalTransporterRegistry.setIOState(i, HaltIO);
-	
-	signal->theData[0] = NDB_LE_CommunicationOpened;
-	signal->theData[1] = i;
-	sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 2, JBB);
-      }
-    }
-  }
-  
-  if (userRef != 0)
-  {
-    jam(); 
-    signal->theData[0] = tStartingNode;
-    signal->theData[1] = tData2;
-    sendSignal(userRef, GSN_OPEN_COMCONF, signal, len - 1,JBA);
-  }
-}
-
-void Cmvmi::execENABLE_COMREQ(Signal* signal)
-{
-  jamEntry();
-  const EnableComReq *enableComReq = (const EnableComReq *)signal->getDataPtr();
-
-  /* Need to copy out signal data to not clobber it with sendSignal(). */
-  Uint32 senderRef = enableComReq->m_senderRef;
-  Uint32 senderData = enableComReq->m_senderData;
-  Uint32 nodes[NodeBitmask::Size];
-  MEMCOPY_NO_WORDS(nodes, enableComReq->m_nodeIds, NodeBitmask::Size);
-
-  /* Enable communication with all our NDB blocks to these nodes. */
-  Uint32 search_from = 0;
-  for (;;)
-  {
-    Uint32 tStartingNode = NodeBitmask::find(nodes, search_from);
-    if (tStartingNode == NodeBitmask::NotFound)
-      break;
-    search_from = tStartingNode + 1;
-
-    globalTransporterRegistry.setIOState(tStartingNode, NoHalt);
-    setNodeInfo(tStartingNode).m_connected = true;
-
-    //-----------------------------------------------------
-    // Report that the version of the node
-    //-----------------------------------------------------
-    signal->theData[0] = NDB_LE_ConnectedApiVersion;
-    signal->theData[1] = tStartingNode;
-    signal->theData[2] = getNodeInfo(tStartingNode).m_version;
-    signal->theData[3] = getNodeInfo(tStartingNode).m_mysql_version;
-
-    sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 4, JBB);
-    //-----------------------------------------------------
-  }
-
-  EnableComConf *enableComConf = (EnableComConf *)signal->getDataPtrSend();
-  enableComConf->m_senderRef = reference();
-  enableComConf->m_senderData = senderData;
-  MEMCOPY_NO_WORDS(enableComConf->m_nodeIds, nodes, NodeBitmask::Size);
-  sendSignal(senderRef, GSN_ENABLE_COMCONF, signal,
-             EnableComConf::SignalLength, JBA);
-}
-
-void Cmvmi::execDISCONNECT_REP(Signal *signal)
-{
-  const DisconnectRep * const rep = (DisconnectRep *)&signal->theData[0];
-  const Uint32 hostId = rep->nodeId;
-  jamEntry();
-
-  setNodeInfo(hostId).m_connected = false;
-  setNodeInfo(hostId).m_connectCount++;
-  const NodeInfo::NodeType type = getNodeInfo(hostId).getType();
-  ndbrequire(type != NodeInfo::INVALID);
-
-  sendSignal(QMGR_REF, GSN_DISCONNECT_REP, signal, 
-             DisconnectRep::SignalLength, JBA);
-  
-  cancelSubscription(hostId);
-
-  signal->theData[0] = NDB_LE_Disconnected;
-  signal->theData[1] = hostId;
-  sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 2, JBB);
-}
- 
-void Cmvmi::execCONNECT_REP(Signal *signal){
-  const Uint32 hostId = signal->theData[0];
-  jamEntry();
-  
-  const NodeInfo::NodeType type = (NodeInfo::NodeType)getNodeInfo(hostId).m_type;
-  ndbrequire(type != NodeInfo::INVALID);
-  globalData.m_nodeInfo[hostId].m_version = 0;
-  globalData.m_nodeInfo[hostId].m_mysql_version = 0;
-  
-  /**
-   * Inform QMGR that client has connected
-   */
-  signal->theData[0] = hostId;
-  if (ERROR_INSERTED(9005))
-  {
-    sendSignalWithDelay(QMGR_REF, GSN_CONNECT_REP, signal, 50, 1);
-  }
-  else
-  {
-    sendSignal(QMGR_REF, GSN_CONNECT_REP, signal, 1, JBA);
-  }
-
-  /* Automatically subscribe events for MGM nodes.
-   */
-  if(type == NodeInfo::MGM)
-  {
-    jam();
-    globalTransporterRegistry.setIOState(hostId, NoHalt);
-  }
-
-  //------------------------------------------
-  // Also report this event to the Event handler
-  //------------------------------------------
-  signal->theData[0] = NDB_LE_Connected;
-  signal->theData[1] = hostId;
-  signal->header.theLength = 2;
-  
-  execEVENT_REP(signal);
-}
-
 #ifdef VM_TRACE
 void
 modifySignalLogger(bool allBlocks, BlockNumber bno, 
@@ -1791,41 +1558,21 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal
 #ifdef ERROR_INSERT
   if (arg == 9000 || arg == 9002)
   {
-    SET_ERROR_INSERT_VALUE(arg);
-    for (Uint32 i = 1; i<signal->getLength(); i++)
-      c_error_9000_nodes_mask.set(signal->theData[i]);
+    // Migrated to TRPMAN
+    sendSignal(TRPMAN_REF, GSN_DUMP_STATE_ORD, signal, signal->getLength(),JBB);
   }
-  
   if (arg == 9001)
   {
-    CLEAR_ERROR_INSERT_VALUE;
-    if (signal->getLength() == 1 || signal->theData[1])
-    {
-      for (Uint32 i = 0; i<MAX_NODES; i++)
-      {
-	if (c_error_9000_nodes_mask.get(i))
-	{
-	  signal->theData[0] = 0;
-	  signal->theData[1] = i;
-	  EXECUTE_DIRECT(CMVMI, GSN_OPEN_COMREQ, signal, 2);
-	}
-      }
-    }
-    c_error_9000_nodes_mask.clear();
+    // Migrated to TRPMAN
+    sendSignal(TRPMAN_REF, GSN_DUMP_STATE_ORD, signal, signal->getLength(),JBB);
   }
 
   if (arg == 9004 && signal->getLength() == 2)
   {
     SET_ERROR_INSERT_VALUE(9004);
-    c_error_9000_nodes_mask.clear();
-    c_error_9000_nodes_mask.set(signal->theData[1]);
-  }
 
-  if (arg == 9004 && signal->getLength() == 2)
-  {
-    SET_ERROR_INSERT_VALUE(9004);
-    c_error_9000_nodes_mask.clear();
-    c_error_9000_nodes_mask.set(signal->theData[1]);
+    // Migrated to TRPMAN
+    sendSignal(TRPMAN_REF, GSN_DUMP_STATE_ORD, signal, signal->getLength(),JBB);
   }
 #endif
 
@@ -1872,87 +1619,20 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal
   if((arg == 9993) ||  /* Unblock recv from nodeid */
      (arg == 9992))    /* Block recv from nodeid */
   {
-    bool block = (arg == 9992);
-    for (Uint32 n = 1; n < signal->getLength(); n++)
-    {
-      Uint32 nodeId = signal->theData[n];
-
-      if ((nodeId > 0) &&
-          (nodeId < MAX_NODES))
-      {
-        if (block)
-        {
-          ndbout_c("CMVMI : Blocking receive from node %u", nodeId);
-
-          globalTransporterRegistry.blockReceive(nodeId);
-        }
-        else
-        {
-          ndbout_c("CMVMI : Unblocking receive from node %u", nodeId);
-
-          globalTransporterRegistry.unblockReceive(nodeId);
-        }
-      }
-      else
-      {
-        ndbout_c("CMVMI : Ignoring dump %u for node %u",
-                 arg, nodeId);
-      }
-    }
+    // Migrated to TRPMAN
+    sendSignal(TRPMAN_REF, GSN_DUMP_STATE_ORD, signal, signal->getLength(),JBB);
   }
+
   if (arg == 9990) /* Block recv from all ndbd matching pattern */
   {
-    Uint32 pattern = 0;
-    if (signal->getLength() > 1)
-    {
-      pattern = signal->theData[1];
-      ndbout_c("CMVMI : Blocking receive from all ndbds matching pattern -%s-",
-               ((pattern == 1)? "Other side":"Unknown"));
-    }
-
-    for (Uint32 node = 1; node < MAX_NDB_NODES; node++)
-    {
-      if (globalTransporterRegistry.is_connected(node))
-      {
-        if (getNodeInfo(node).m_type == NodeInfo::DB)
-        {
-          if (!globalTransporterRegistry.isBlocked(node))
-          {
-            switch (pattern)
-            {
-            case 1:
-            {
-              /* Match if given node is on 'other side' of
-               * 2-replica cluster
-               */
-              if ((getOwnNodeId() & 1) != (node & 1))
-              {
-                /* Node is on the 'other side', match */
-                break;
-              }
-              /* Node is on 'my side', don't match */
-              continue;
-            }
-            default:
-              break;
-            }
-            ndbout_c("CMVMI : Blocking receive from node %u", node);
-            globalTransporterRegistry.blockReceive(node);
-          }
-        }
-      }
-    }
+    // Migrated to TRPMAN
+    sendSignal(TRPMAN_REF, GSN_DUMP_STATE_ORD, signal, signal->getLength(),JBB);
   }
+
   if (arg == 9991) /* Unblock recv from all blocked */
   {
-    for (Uint32 node = 0; node < MAX_NODES; node++)
-    {
-      if (globalTransporterRegistry.isBlocked(node))
-      {
-        ndbout_c("CMVMI : Unblocking receive from node %u", node);
-        globalTransporterRegistry.unblockReceive(node);
-      }
-    }
+    // Migrated to TRPMAN
+    sendSignal(TRPMAN_REF, GSN_DUMP_STATE_ORD, signal, signal->getLength(),JBB);
   }
 #endif
 
@@ -2051,44 +1731,6 @@ void Cmvmi::execDBINFO_SCANREQ(Signal *s
   jamEntry();
 
   switch(req.tableId){
-  case Ndbinfo::TRANSPORTERS_TABLEID:
-  {
-    jam();
-    Uint32 rnode = cursor->data[0];
-    if (rnode == 0)
-      rnode++; // Skip node 0
-
-    while(rnode < MAX_NODES)
-    {
-      switch(getNodeInfo(rnode).m_type)
-      {
-      default:
-      {
-        jam();
-        Ndbinfo::Row row(signal, req);
-        row.write_uint32(getOwnNodeId()); // Node id
-        row.write_uint32(rnode); // Remote node id
-        row.write_uint32(globalTransporterRegistry.getPerformState(rnode)); // State
-        ndbinfo_send_row(signal, req, row, rl);
-       break;
-      }
-
-      case NodeInfo::INVALID:
-        jam();
-       break;
-      }
-
-      rnode++;
-      if (rl.need_break(req))
-      {
-        jam();
-        ndbinfo_send_scan_break(signal, req, rl, rnode);
-        return;
-      }
-    }
-    break;
-  }
-
   case Ndbinfo::RESOURCES_TABLEID:
   {
     jam();
@@ -3135,69 +2777,6 @@ Cmvmi::reportIMUsage(Signal* signal, int
   sendSignal(ref, GSN_EVENT_REP, signal, 6, JBB);
 }
 
-
-/**
- * execROUTE_ORD
- * Allows other blocks to route signals as if they
- * came from Cmvmi
- * Useful in ndbmtd for synchronising signals w.r.t
- * external signals received from other nodes which
- * arrive from the same thread that runs CMVMI.
- */
-void
-Cmvmi::execROUTE_ORD(Signal* signal)
-{
-  jamEntry();
-  if(!assembleFragments(signal)){
-    jam();
-    return;
-  }
-
-  SectionHandle handle(this, signal);
-
-  RouteOrd* ord = (RouteOrd*)signal->getDataPtr();
-  Uint32 dstRef = ord->dstRef;
-  Uint32 srcRef = ord->srcRef;
-  Uint32 gsn = ord->gsn;
-  /* ord->cnt ignored */
-
-  Uint32 nodeId = refToNode(dstRef);
-  
-  if (likely((nodeId == 0) ||
-             getNodeInfo(nodeId).m_connected))
-  {
-    jam();
-    Uint32 secCount = handle.m_cnt;
-    ndbrequire(secCount >= 1 && secCount <= 3);
-
-    jamLine(secCount);
-
-    /**
-     * Put section 0 in signal->theData
-     */
-    Uint32 sigLen = handle.m_ptr[0].sz;
-    ndbrequire(sigLen <= 25);
-    copy(signal->theData, handle.m_ptr[0]);
-
-    SegmentedSectionPtr save = handle.m_ptr[0];
-    for (Uint32 i = 0; i < secCount - 1; i++)
-      handle.m_ptr[i] = handle.m_ptr[i+1];
-    handle.m_cnt--;
-
-    sendSignal(dstRef, gsn, signal, sigLen, JBB, &handle);
-
-    handle.m_cnt = 1;
-    handle.m_ptr[0] = save;
-    releaseSections(handle);
-    return ;
-  }
-
-  releaseSections(handle);
-  warningEvent("Unable to route GSN: %d from %x to %x",
-	       gsn, srcRef, dstRef);
-}
-
-
 void Cmvmi::execGET_CONFIG_REQ(Signal *signal)
 {
   jamEntry();

=== modified file 'storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp'
--- a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp	2011-11-16 16:23:37 +0000
+++ b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp	2011-11-18 09:20:34 +0000
@@ -18,7 +18,6 @@
 #ifndef Cmvmi_H_
 #define Cmvmi_H_
 
-#include <pc.hpp>
 #include <SimulatedBlock.hpp>
 #include <LogLevel.hpp>
 
@@ -33,16 +32,6 @@ public:
   virtual ~Cmvmi();
   
 private:
-  /**
-   * These methods used to be reportXXX
-   *
-   * But they in a nasty way intefere with the execution model
-   * they been turned in to exec-Method used via prio A signals
-   */
-  void execDISCONNECT_REP(Signal*);
-  void execCONNECT_REP(Signal*);
-  
-private:
   BLOCK_DEFINES(Cmvmi);
 
   // The signal processing functions
@@ -51,9 +40,6 @@ private:
   void execEVENT_REP(Signal* signal);
   void execREAD_CONFIG_REQ(Signal* signal);
   void execSTTOR(Signal* signal);
-  void execCLOSE_COMREQ(Signal* signal);
-  void execENABLE_COMREQ(Signal* signal);
-  void execOPEN_COMREQ(Signal* signal);
   void execSIZEALT_ACK(Signal* signal);
   void execTEST_ORD(Signal* signal);
 
@@ -64,15 +50,13 @@ private:
   void execDUMP_STATE_ORD(Signal* signal);
 
   void execEVENT_SUBSCRIBE_REQ(Signal *);
-  void cancelSubscription(NodeId nodeId);
+  void execCANCEL_SUBSCRIPTION_REQ(Signal *);
 
   void execTESTSIG(Signal* signal);
   void execNODE_START_REP(Signal* signal);
 
   void execCONTINUEB(Signal* signal);
 
-  void execROUTE_ORD(Signal* signal);
-
   void execDBINFO_SCANREQ(Signal *signal);
 
   void execALLOC_MEM_REF(Signal*);

=== modified file 'storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp'
--- a/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp	2011-11-17 17:21:52 +0000
+++ b/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp	2011-11-18 09:20:34 +0000
@@ -606,7 +606,7 @@ void Qmgr::execCM_INFOCONF(Signal* signa
   signal->theData[0] = 0; // no answer
   signal->theData[1] = 0; // no id
   signal->theData[2] = NodeInfo::DB;
-  sendSignal(CMVMI_REF, GSN_OPEN_COMREQ, signal, 3, JBB);
+  sendSignal(TRPMAN_REF, GSN_OPEN_COMREQ, signal, 3, JBB);
 
   cpresident = ZNIL;
   cpresidentAlive = ZFALSE;
@@ -1987,7 +1987,7 @@ Qmgr::cmAddPrepare(Signal* signal, NodeR
     nodePtr.p->failState = NORMAL;
     signal->theData[0] = 0;
     signal->theData[1] = nodePtr.i;
-    sendSignal(CMVMI_REF, GSN_OPEN_COMREQ, signal, 2, JBA);
+    sendSignal(TRPMAN_REF, GSN_OPEN_COMREQ, signal, 2, JBB);
 #endif
     return;
   case ZSTARTING:
@@ -2143,8 +2143,8 @@ void Qmgr::execCM_ADD(Signal* signal)
     enableComReq->m_senderData = ENABLE_COM_CM_ADD_COMMIT;
     NodeBitmask::clear(enableComReq->m_nodeIds);
     NodeBitmask::set(enableComReq->m_nodeIds, addNodePtr.i);
-    sendSignal(CMVMI_REF, GSN_ENABLE_COMREQ, signal,
-               EnableComReq::SignalLength, JBA);
+    sendSignal(TRPMAN_REF, GSN_ENABLE_COMREQ, signal,
+               EnableComReq::SignalLength, JBB);
     break;
   }
   case CmAdd::CommitNew:
@@ -2249,8 +2249,8 @@ Qmgr::joinedCluster(Signal* signal, Node
   if (!NodeBitmask::isclear(enableComReq->m_nodeIds))
   {
     jam();
-    sendSignal(CMVMI_REF, GSN_ENABLE_COMREQ, signal,
-               EnableComReq::SignalLength, JBA);
+    sendSignal(TRPMAN_REF, GSN_ENABLE_COMREQ, signal,
+               EnableComReq::SignalLength, JBB);
   }
   else
   {
@@ -2924,7 +2924,7 @@ void Qmgr::checkStartInterface(Signal* s
         setNodeInfo(nodePtr.i).m_heartbeat_cnt= 0;
         signal->theData[0] = 0;
         signal->theData[1] = nodePtr.i;
-        sendSignal(CMVMI_REF, GSN_OPEN_COMREQ, signal, 2, JBA);
+        sendSignal(TRPMAN_REF, GSN_OPEN_COMREQ, signal, 2, JBB);
       }
       else
       {
@@ -3418,8 +3418,8 @@ void Qmgr::node_failed(Signal* signal, U
     closeCom->noOfNodes   = 1;
     NodeBitmask::clear(closeCom->theNodes);
     NodeBitmask::set(closeCom->theNodes, failedNodePtr.i);
-    sendSignal(CMVMI_REF, GSN_CLOSE_COMREQ, signal, 
-               CloseComReqConf::SignalLength, JBA);
+    sendSignal(TRPMAN_REF, GSN_CLOSE_COMREQ, signal,
+               CloseComReqConf::SignalLength, JBB);
   }//if
   return;
 }
@@ -3487,8 +3487,8 @@ Qmgr::api_failed(Signal* signal, Uint32
   closeCom->noOfNodes   = 1;
   NodeBitmask::clear(closeCom->theNodes);
   NodeBitmask::set(closeCom->theNodes, failedNodePtr.i);
-  sendSignal(CMVMI_REF, GSN_CLOSE_COMREQ, signal, 
-             CloseComReqConf::SignalLength, JBA);
+  sendSignal(TRPMAN_REF, GSN_CLOSE_COMREQ, signal,
+             CloseComReqConf::SignalLength, JBB);
 } // api_failed
 
 /**--------------------------------------------------------------------------
@@ -3597,8 +3597,8 @@ void Qmgr::execAPI_REGREQ(Signal* signal
       enableComReq->m_senderData = ENABLE_COM_API_REGREQ;
       NodeBitmask::clear(enableComReq->m_nodeIds);
       NodeBitmask::set(enableComReq->m_nodeIds, apiNodePtr.i);
-      sendSignal(CMVMI_REF, GSN_ENABLE_COMREQ, signal,
-                 EnableComReq::SignalLength, JBA);
+      sendSignal(TRPMAN_REF, GSN_ENABLE_COMREQ, signal,
+                 EnableComReq::SignalLength, JBB);
       return;
     }
   }
@@ -4997,8 +4997,8 @@ void Qmgr::sendCloseComReq(Signal* signa
     NodeBitmask::set(closeCom->theNodes, nodeId);
   }
 
-  sendSignal(CMVMI_REF, GSN_CLOSE_COMREQ, signal, 
-	     CloseComReqConf::SignalLength, JBA);
+  sendSignal(TRPMAN_REF, GSN_CLOSE_COMREQ, signal,
+	     CloseComReqConf::SignalLength, JBB);
 
 }//Qmgr::sendCloseComReq()
 

=== modified file 'storage/ndb/src/kernel/vm/TransporterCallback.cpp'
--- a/storage/ndb/src/kernel/vm/TransporterCallback.cpp	2011-11-16 16:23:37 +0000
+++ b/storage/ndb/src/kernel/vm/TransporterCallback.cpp	2011-11-18 09:20:34 +0000
@@ -374,7 +374,7 @@ TransporterCallbackKernel::reportConnect
   signal.header.theLength = 1; 
   signal.header.theSendersSignalId = 0;
   signal.header.theSendersBlockRef = numberToRef(0, globalData.ownId);
-  signal.header.theReceiversBlockNumber = CMVMI;
+  signal.header.theReceiversBlockNumber = TRPMAN;
   signal.header.theVerId_signalNumber = GSN_CONNECT_REP;
 
   signal.theData[0] = nodeId;
@@ -405,7 +405,7 @@ TransporterCallbackKernel::reportDisconn
   signal.header.theSendersBlockRef = numberToRef(0, globalData.ownId);
   signal.header.theTrace = TestOrd::TraceDisconnect;
   signal.header.theVerId_signalNumber = GSN_DISCONNECT_REP;
-  signal.header.theReceiversBlockNumber = CMVMI;
+  signal.header.theReceiversBlockNumber = TRPMAN;
 
   DisconnectRep * rep = CAST_PTR(DisconnectRep, &signal.theData[0]);
   rep->nodeId = nodeId;

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-5.1-telco-7.0-trpman branch (jonas.oreland:4676 to 4677)jonas oreland18 Nov