mirror of
https://github.com/MariaDB/server.git
synced 2026-05-10 17:14:30 +02:00
Bug fix for error insert 5038,
timeout in abort handling with more than 128 operations
This commit is contained in:
parent
cb6a3b222d
commit
7b68640505
1 changed files with 11 additions and 5 deletions
|
|
@ -65,6 +65,7 @@
|
||||||
#include <signaldata/DictTabInfo.hpp>
|
#include <signaldata/DictTabInfo.hpp>
|
||||||
|
|
||||||
#include <NdbOut.hpp>
|
#include <NdbOut.hpp>
|
||||||
|
#include <DebuggerNames.hpp>
|
||||||
|
|
||||||
// Use DEBUG to print messages that should be
|
// Use DEBUG to print messages that should be
|
||||||
// seen only when we debug the product
|
// seen only when we debug the product
|
||||||
|
|
@ -260,6 +261,7 @@ void Dbtc::execCONTINUEB(Signal* signal)
|
||||||
tcConnectptr.i = Tdata0;
|
tcConnectptr.i = Tdata0;
|
||||||
apiConnectptr.i = Tdata1;
|
apiConnectptr.i = Tdata1;
|
||||||
ptrCheckGuard(apiConnectptr, capiConnectFilesize, apiConnectRecord);
|
ptrCheckGuard(apiConnectptr, capiConnectFilesize, apiConnectRecord);
|
||||||
|
apiConnectptr.p->counter--;
|
||||||
sendAbortedAfterTimeout(signal, 1);
|
sendAbortedAfterTimeout(signal, 1);
|
||||||
return;
|
return;
|
||||||
case TcContinueB::ZHANDLE_FAILED_API_NODE_REMOVE_MARKERS:
|
case TcContinueB::ZHANDLE_FAILED_API_NODE_REMOVE_MARKERS:
|
||||||
|
|
@ -6039,7 +6041,8 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr)
|
||||||
<< " H'" << apiConnectptr.p->transid[1] << "] " << dec
|
<< " H'" << apiConnectptr.p->transid[1] << "] " << dec
|
||||||
<< "Time-out in state = " << apiConnectptr.p->apiConnectstate
|
<< "Time-out in state = " << apiConnectptr.p->apiConnectstate
|
||||||
<< " apiConnectptr.i = " << apiConnectptr.i
|
<< " apiConnectptr.i = " << apiConnectptr.i
|
||||||
<< " - exec: " << apiConnectptr.p->m_exec_flag);
|
<< " - exec: " << apiConnectptr.p->m_exec_flag
|
||||||
|
<< " - place: " << c_apiConTimer_line[apiConnectptr.i]);
|
||||||
switch (apiConnectptr.p->apiConnectstate) {
|
switch (apiConnectptr.p->apiConnectstate) {
|
||||||
case CS_STARTED:
|
case CS_STARTED:
|
||||||
if(apiConnectptr.p->lqhkeyreqrec == apiConnectptr.p->lqhkeyconfrec){
|
if(apiConnectptr.p->lqhkeyreqrec == apiConnectptr.p->lqhkeyconfrec){
|
||||||
|
|
@ -6300,11 +6303,10 @@ void Dbtc::sendAbortedAfterTimeout(Signal* signal, int Tcheck)
|
||||||
warningEvent(buf);
|
warningEvent(buf);
|
||||||
ndbout_c(buf);
|
ndbout_c(buf);
|
||||||
ndbrequire(false);
|
ndbrequire(false);
|
||||||
|
}
|
||||||
releaseAbortResources(signal);
|
releaseAbortResources(signal);
|
||||||
return;
|
return;
|
||||||
}//if
|
}//if
|
||||||
return;
|
|
||||||
}//if
|
|
||||||
TloopCount++;
|
TloopCount++;
|
||||||
if (TloopCount >= 1024) {
|
if (TloopCount >= 1024) {
|
||||||
jam();
|
jam();
|
||||||
|
|
@ -6313,6 +6315,7 @@ void Dbtc::sendAbortedAfterTimeout(Signal* signal, int Tcheck)
|
||||||
// away the job buffer.
|
// away the job buffer.
|
||||||
/*------------------------------------------------------------------*/
|
/*------------------------------------------------------------------*/
|
||||||
setApiConTimer(apiConnectptr.i, ctcTimer, __LINE__);
|
setApiConTimer(apiConnectptr.i, ctcTimer, __LINE__);
|
||||||
|
apiConnectptr.p->counter++;
|
||||||
signal->theData[0] = TcContinueB::ZABORT_TIMEOUT_BREAK;
|
signal->theData[0] = TcContinueB::ZABORT_TIMEOUT_BREAK;
|
||||||
signal->theData[1] = tcConnectptr.i;
|
signal->theData[1] = tcConnectptr.i;
|
||||||
signal->theData[2] = apiConnectptr.i;
|
signal->theData[2] = apiConnectptr.i;
|
||||||
|
|
@ -10039,7 +10042,8 @@ void Dbtc::releaseAbortResources(Signal* signal)
|
||||||
}//if
|
}//if
|
||||||
|
|
||||||
}
|
}
|
||||||
setApiConTimer(apiConnectptr.i, 0, __LINE__);
|
setApiConTimer(apiConnectptr.i, 0,
|
||||||
|
100000+c_apiConTimer_line[apiConnectptr.i]);
|
||||||
if (apiConnectptr.p->apiFailState == ZTRUE) {
|
if (apiConnectptr.p->apiFailState == ZTRUE) {
|
||||||
jam();
|
jam();
|
||||||
handleApiFailState(signal, apiConnectptr.i);
|
handleApiFailState(signal, apiConnectptr.i);
|
||||||
|
|
@ -11326,6 +11330,8 @@ void Dbtc::execTCKEYCONF(Signal* signal)
|
||||||
}
|
}
|
||||||
const UintR TconnectIndex = indexOp->connectionIndex;
|
const UintR TconnectIndex = indexOp->connectionIndex;
|
||||||
ApiConnectRecord * const regApiPtr = &apiConnectRecord[TconnectIndex];
|
ApiConnectRecord * const regApiPtr = &apiConnectRecord[TconnectIndex];
|
||||||
|
apiConnectptr.p = regApiPtr;
|
||||||
|
apiConnectptr.i = TconnectIndex;
|
||||||
switch(indexOp->indexOpState) {
|
switch(indexOp->indexOpState) {
|
||||||
case(IOS_NOOP): {
|
case(IOS_NOOP): {
|
||||||
jam();
|
jam();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue