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
This commit is contained in:
unknown 2004-08-06 11:29:56 +02:00
parent e4837b10d9
commit 01e1451ad8
2 changed files with 5 additions and 3 deletions

View file

@ -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

View file

@ -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()