Commit 7fa2b4ef authored by unknown's avatar unknown
Browse files

BUG#ndb_blob on 1 node

Make sure to flush buffer when sending long sig so that order is maintained

parent c2e13da2
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -141,6 +141,8 @@ void Dbtup::sendReadAttrinfo(Signal* signal,
  const Uint32 type = getNodeInfo(nodeId).m_type;
  bool is_api = (type >= NodeInfo::API && type <= NodeInfo::REP);
  bool old_dest = (getNodeInfo(nodeId).m_version < MAKE_VERSION(3,5,0));
  Uint32 TpacketTA = hostBuffer[nodeId].noOfPacketsTA;
  Uint32 TpacketLen = hostBuffer[nodeId].packetLenTA;
  
  if (ERROR_INSERTED(4006) && (nodeId != getOwnNodeId())){
    // Use error insert to turn routing on
@@ -169,6 +171,19 @@ void Dbtup::sendReadAttrinfo(Signal* signal,
       */
      if(ToutBufIndex >= 22 && is_api && !old_dest) {
	ljam();
	/**
	 * Flush buffer so that order is maintained
	 */
	if (TpacketTA != 0) {
	  ljam();
	  BlockReference TBref = numberToRef(API_PACKED, nodeId);
	  MEMCOPY_NO_WORDS(&signal->theData[0],
			   &hostBuffer[nodeId].packetBufferTA[0],
			   TpacketLen);
	  sendSignal(TBref, GSN_TRANSID_AI, signal, TpacketLen, JBB);
	  hostBuffer[nodeId].noOfPacketsTA = 0;
	  hostBuffer[nodeId].packetLenTA = 0;
	}//if
	LinearSectionPtr ptr[3];
	ptr[0].p = &signal->theData[25];
	ptr[0].sz = ToutBufIndex;