Commit 01e1451a authored by unknown's avatar unknown

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
...@@ -4959,6 +4959,7 @@ void Dbtc::execLQHKEYREF(Signal* signal) ...@@ -4959,6 +4959,7 @@ void Dbtc::execLQHKEYREF(Signal* signal)
} }
} }
Uint32 marker = regTcPtr->commitAckMarker;
markOperationAborted(regApiPtr, regTcPtr); markOperationAborted(regApiPtr, regTcPtr);
if(regApiPtr->apiConnectstate == CS_ABORTING){ if(regApiPtr->apiConnectstate == CS_ABORTING){
...@@ -4978,7 +4979,7 @@ void Dbtc::execLQHKEYREF(Signal* signal) ...@@ -4978,7 +4979,7 @@ void Dbtc::execLQHKEYREF(Signal* signal)
return; return;
}//if }//if
if (regTcPtr->commitAckMarker != RNIL){ if (marker != RNIL){
/** /**
* This was an insert/update/delete/write which failed * This was an insert/update/delete/write which failed
* that contained the marker * that contained the marker
......
...@@ -139,8 +139,9 @@ void Dbtup::initializePage() ...@@ -139,8 +139,9 @@ void Dbtup::initializePage()
ptrAss(pagePtr, page); ptrAss(pagePtr, page);
pagePtr.p->pageWord[ZPAGE_STATE_POS] = ~ZFREE_COMMON; pagePtr.p->pageWord[ZPAGE_STATE_POS] = ~ZFREE_COMMON;
cnoOfAllocatedPages = 1 + MAX_PARALLELL_TUP_SRREQ; Uint32 tmp = 1 + MAX_PARALLELL_TUP_SRREQ;
returnCommonArea(cnoOfAllocatedPages, cnoOfPage - cnoOfAllocatedPages); returnCommonArea(tmp, cnoOfPage - tmp);
cnoOfAllocatedPages = tmp; // Is updated by returnCommonArea
c_sr_free_page_0 = ~0; c_sr_free_page_0 = ~0;
}//Dbtup::initializePage() }//Dbtup::initializePage()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment