Commit 01e1451a authored by unknown's avatar unknown
Browse files

Bug#4586 + TC fix


ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  Operations with marker always leads to abort even
  if IgnoreError was supplied (limitation)
  
  Check marker before marking operation as aborted (which removes marker)
ndb/src/kernel/blocks/dbtup/DbtupPagMan.cpp:
  Init cnoOfAllocatedPages after returnCommonArea
parent e4837b10
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -4959,6 +4959,7 @@ void Dbtc::execLQHKEYREF(Signal* signal)
	}
      }
      
      Uint32 marker = regTcPtr->commitAckMarker;
      markOperationAborted(regApiPtr, regTcPtr);
      
      if(regApiPtr->apiConnectstate == CS_ABORTING){
@@ -4978,7 +4979,7 @@ void Dbtc::execLQHKEYREF(Signal* signal)
	return;
      }//if

      if (regTcPtr->commitAckMarker != RNIL){
      if (marker != RNIL){
	/**
	 * This was an insert/update/delete/write which failed
	 *   that contained the marker
+3 −2
Original line number Diff line number Diff line
@@ -139,8 +139,9 @@ void Dbtup::initializePage()
  ptrAss(pagePtr, page);
  pagePtr.p->pageWord[ZPAGE_STATE_POS] = ~ZFREE_COMMON;
  
  cnoOfAllocatedPages = 1 + MAX_PARALLELL_TUP_SRREQ;
  returnCommonArea(cnoOfAllocatedPages, cnoOfPage - cnoOfAllocatedPages);
  Uint32 tmp = 1 + MAX_PARALLELL_TUP_SRREQ;
  returnCommonArea(tmp, cnoOfPage - tmp);
  cnoOfAllocatedPages = tmp; // Is updated by returnCommonArea
  c_sr_free_page_0 = ~0;
}//Dbtup::initializePage()