Commit aeb2d457 authored by unknown's avatar unknown
Browse files

ndb - bug#24717

  5.1 version
  remove 5.0 version
  add general routing signal
  send tckeyref routed if needed...


storage/ndb/include/kernel/GlobalSignalNumbers.h:
  Add general routing signal
storage/ndb/src/common/debugger/signaldata/SignalNames.cpp:
  Add general routing signal
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  send TCKEYREF routed if needed
storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
  add general routing 
  remove node started state
storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp:
  add general routing 
  remove node started state
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  add general routing 
  remove node started state
  remove "avoid sending committed read to early" as it now should be handled correctly
storage/ndb/include/kernel/signaldata/RouteOrd.hpp:
  New BitKeeper file ``storage/ndb/include/kernel/signaldata/RouteOrd.hpp''
parent e958b49e
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -126,7 +126,6 @@ extern const GlobalSignalNumber NO_OF_SIGNAL_NAMES;
#define GSN_ACC_ABORTCONF               67
/* 68 not unused */
/* 69 not unused */
/* 70 unused */
#define GSN_UPDATE_FRAG_DIST_KEY_ORD    70
#define GSN_ACC_ABORTREQ                71
#define GSN_ACC_CHECK_SCAN              72
@@ -183,7 +182,7 @@ extern const GlobalSignalNumber NO_OF_SIGNAL_NAMES;
#define GSN_CNTR_START_CONF             118
#define GSN_CNTR_START_REP              119
/* 120 not unused */
/* 121 unused */
#define GSN_ROUTE_ORD                   121
/* 122 unused */
/* 123 unused */
/* 124 unused */
+35 −0
Original line number Diff line number Diff line
/* Copyright (C) 2003 MySQL AB

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */

#ifndef ROUTE_ORD_HPP
#define ROUTE_ORD_HPP

#include "SignalData.hpp"
#include <NodeBitmask.hpp>

/**
 * Request to allocate node id
 */
struct RouteOrd {
  STATIC_CONST( SignalLength = 4 );

  Uint32 dstRef;
  Uint32 srcRef;
  Uint32 gsn;
  Uint32 cnt;
};

#endif
+2 −0
Original line number Diff line number Diff line
@@ -635,5 +635,7 @@ const GsnName SignalNames [] = {

  ,{ GSN_UPDATE_FRAG_DIST_KEY_ORD, "UPDATE_FRAG_DIST_KEY_ORD" }
  ,{ GSN_DICT_COMMIT_REQ,  "DICT_COMMIT_REQ"}

  ,{ GSN_ROUTE_ORD, "ROUTE_ORD" }
};
const unsigned short NO_OF_SIGNAL_NAMES = sizeof(SignalNames)/sizeof(GsnName);
+27 −7
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@
#include <signaldata/KeyInfo.hpp>
#include <signaldata/AttrInfo.hpp>
#include <KeyDescriptor.hpp>
#include <signaldata/RouteOrd.hpp>
// Use DEBUG to print messages that should be
// seen only when we debug the product
@@ -7336,6 +7337,24 @@ Dblqh::sendTCKEYREF(Signal* signal, Uint32 ref, Uint32 routeRef, Uint32 cnt)
    sendSignal(ref, GSN_TCKEYREF, signal, TcKeyRef::SignalLength, JBB);
  }
  else
  {
    if (routeRef && 
	getNodeInfo(refToNode(routeRef)).m_version >= MAKE_VERSION(5,1,14))
    {
      jam();
      memmove(signal->theData+25, signal->theData, 4*TcKeyRef::SignalLength);
      RouteOrd* ord = (RouteOrd*)signal->getDataPtrSend();
      ord->dstRef = ref;
      ord->srcRef = reference();
      ord->gsn = GSN_TCKEYREF;
      ord->cnt = 0;
      LinearSectionPtr ptr[3];
      ptr[0].p = signal->theData+25;
      ptr[0].sz = TcKeyRef::SignalLength;
      sendSignal(routeRef, GSN_ROUTE_ORD, signal, RouteOrd::SignalLength, JBB,
		 ptr, 1);
    }
    else
    {
      jam();
      memmove(signal->theData + 3, signal->theData, 4*TcKeyRef::SignalLength);
@@ -7346,6 +7365,7 @@ Dblqh::sendTCKEYREF(Signal* signal, Uint32 ref, Uint32 routeRef, Uint32 cnt)
			  TcKeyRef::SignalLength + 3);
    }
  }
}
/* ########################################################################## 
 * #######                       MODULE TO HANDLE TC FAILURE          ####### 
+2 −4
Original line number Diff line number Diff line
@@ -945,8 +945,7 @@ public:
      NF_CHECK_SCAN        = 0x2,
      NF_CHECK_TRANSACTION = 0x4,
      NF_CHECK_DROP_TAB    = 0x8,
      NF_NODE_FAIL_BITS    = 0xF, // All bits...
      NF_STARTED           = 0x10
      NF_NODE_FAIL_BITS    = 0xF // All bits...
    };
    Uint32 m_nf_bits;
    NdbNodeBitmask m_lqh_trans_conf;
@@ -1286,7 +1285,7 @@ private:
  void execLQHKEYREF(Signal* signal);
  void execTRANSID_AI_R(Signal* signal);
  void execKEYINFO20_R(Signal* signal);

  void execROUTE_ORD(Signal* signal);
  // Received signals
  void execDUMP_STATE_ORD(Signal* signal);
  void execSEND_PACKED(Signal* signal);
@@ -1324,7 +1323,6 @@ private:
  void execCOMMITCONF(Signal* signal);
  void execABORTCONF(Signal* signal);
  void execNODE_FAILREP(Signal* signal);
  void execNODE_START_REP(Signal* signal);
  void execINCL_NODEREQ(Signal* signal);
  void execTIME_SIGNAL(Signal* signal);
  void execAPI_FAILREQ(Signal* signal);
Loading