mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
ndb - merge fixes
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp: merge storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: merge storage/ndb/src/ndbapi/NdbTransaction.cpp: merge storage/ndb/src/ndbapi/Ndbif.cpp: merge
This commit is contained in:
parent
b70b75567a
commit
61e3fea2cf
4 changed files with 3 additions and 168 deletions
|
@ -13827,7 +13827,7 @@ Dbdih::execDUMP_STATE_ORD(Signal* signal)
|
||||||
if (signal->getLength() == 1)
|
if (signal->getLength() == 1)
|
||||||
{
|
{
|
||||||
const ndb_mgm_configuration_iterator * p =
|
const ndb_mgm_configuration_iterator * p =
|
||||||
theConfiguration.getOwnConfigIterator();
|
m_ctx.m_config.getOwnConfigIterator();
|
||||||
ndbrequire(p != 0);
|
ndbrequire(p != 0);
|
||||||
ndb_mgm_get_int_parameter(p, CFG_DB_GCP_INTERVAL, &cgcpDelay);
|
ndb_mgm_get_int_parameter(p, CFG_DB_GCP_INTERVAL, &cgcpDelay);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18198,171 +18198,6 @@ Dblqh::execDUMP_STATE_ORD(Signal* signal)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
TcConnectionrec *regTcConnectionrec = tcConnectionrec;
|
|
||||||
Uint32 ttcConnectrecFileSize = ctcConnectrecFileSize;
|
|
||||||
if(arg == 2306)
|
|
||||||
{
|
|
||||||
for(Uint32 i = 0; i<1024; i++)
|
|
||||||
{
|
|
||||||
TcConnectionrecPtr tcRec;
|
|
||||||
tcRec.i = ctransidHash[i];
|
|
||||||
while(tcRec.i != RNIL)
|
|
||||||
{
|
|
||||||
ptrCheckGuard(tcRec, ttcConnectrecFileSize, regTcConnectionrec);
|
|
||||||
ndbout << "TcConnectionrec " << tcRec.i;
|
|
||||||
signal->theData[0] = 2307;
|
|
||||||
signal->theData[1] = tcRec.i;
|
|
||||||
execDUMP_STATE_ORD(signal);
|
|
||||||
tcRec.i = tcRec.p->nextHashRec;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(arg == 2307 || arg == 2308)
|
|
||||||
{
|
|
||||||
TcConnectionrecPtr tcRec;
|
|
||||||
tcRec.i = signal->theData[1];
|
|
||||||
ptrCheckGuard(tcRec, ttcConnectrecFileSize, regTcConnectionrec);
|
|
||||||
|
|
||||||
ndbout << " transactionState = " << tcRec.p->transactionState<<endl;
|
|
||||||
ndbout << " operation = " << tcRec.p->operation<<endl;
|
|
||||||
ndbout << " tcNodeFailrec = " << tcRec.p->tcNodeFailrec
|
|
||||||
<< " seqNoReplica = " << tcRec.p->seqNoReplica
|
|
||||||
<< " simpleRead = " << tcRec.p->simpleRead
|
|
||||||
<< endl;
|
|
||||||
ndbout << " replicaType = " << tcRec.p->replicaType
|
|
||||||
<< " reclenAiLqhkey = " << tcRec.p->reclenAiLqhkey
|
|
||||||
<< " opExec = " << tcRec.p->opExec
|
|
||||||
<< endl;
|
|
||||||
ndbout << " opSimple = " << tcRec.p->opSimple
|
|
||||||
<< " nextSeqNoReplica = " << tcRec.p->nextSeqNoReplica
|
|
||||||
<< " lockType = " << tcRec.p->lockType
|
|
||||||
<< endl;
|
|
||||||
ndbout << " lastReplicaNo = " << tcRec.p->lastReplicaNo
|
|
||||||
<< " indTakeOver = " << tcRec.p->indTakeOver
|
|
||||||
<< " dirtyOp = " << tcRec.p->dirtyOp
|
|
||||||
<< endl;
|
|
||||||
ndbout << " activeCreat = " << tcRec.p->activeCreat
|
|
||||||
<< " tcBlockref = " << hex << tcRec.p->tcBlockref
|
|
||||||
<< " reqBlockref = " << hex << tcRec.p->reqBlockref
|
|
||||||
<< " primKeyLen = " << tcRec.p->primKeyLen
|
|
||||||
<< endl;
|
|
||||||
ndbout << " nextReplica = " << tcRec.p->nextReplica
|
|
||||||
<< " tcBlockref = " << hex << tcRec.p->tcBlockref
|
|
||||||
<< " reqBlockref = " << hex << tcRec.p->reqBlockref
|
|
||||||
<< " primKeyLen = " << tcRec.p->primKeyLen
|
|
||||||
<< endl;
|
|
||||||
ndbout << " logStopPageNo = " << tcRec.p->logStopPageNo
|
|
||||||
<< " logStartPageNo = " << tcRec.p->logStartPageNo
|
|
||||||
<< " logStartPageIndex = " << tcRec.p->logStartPageIndex
|
|
||||||
<< endl;
|
|
||||||
ndbout << " errorCode = " << tcRec.p->errorCode
|
|
||||||
<< " clientBlockref = " << hex << tcRec.p->clientBlockref
|
|
||||||
<< " applRef = " << hex << tcRec.p->applRef
|
|
||||||
<< " totSendlenAi = " << tcRec.p->totSendlenAi
|
|
||||||
<< endl;
|
|
||||||
ndbout << " totReclenAi = " << tcRec.p->totReclenAi
|
|
||||||
<< " tcScanRec = " << tcRec.p->tcScanRec
|
|
||||||
<< " tcScanInfo = " << tcRec.p->tcScanInfo
|
|
||||||
<< " tcOprec = " << hex << tcRec.p->tcOprec
|
|
||||||
<< endl;
|
|
||||||
ndbout << " tableref = " << tcRec.p->tableref
|
|
||||||
<< " simpleTcConnect = " << tcRec.p->simpleTcConnect
|
|
||||||
<< " storedProcId = " << tcRec.p->storedProcId
|
|
||||||
<< " schemaVersion = " << tcRec.p->schemaVersion
|
|
||||||
<< endl;
|
|
||||||
ndbout << " reqinfo = " << tcRec.p->reqinfo
|
|
||||||
<< " reqRef = " << tcRec.p->reqRef
|
|
||||||
<< " readlenAi = " << tcRec.p->readlenAi
|
|
||||||
<< " prevTc = " << tcRec.p->prevTc
|
|
||||||
<< endl;
|
|
||||||
ndbout << " prevLogTcrec = " << tcRec.p->prevLogTcrec
|
|
||||||
<< " prevHashRec = " << tcRec.p->prevHashRec
|
|
||||||
<< " nodeAfterNext0 = " << tcRec.p->nodeAfterNext[0]
|
|
||||||
<< " nodeAfterNext1 = " << tcRec.p->nodeAfterNext[1]
|
|
||||||
<< endl;
|
|
||||||
ndbout << " nextTcConnectrec = " << tcRec.p->nextTcConnectrec
|
|
||||||
<< " nextTc = " << tcRec.p->nextTc
|
|
||||||
<< " nextTcLogQueue = " << tcRec.p->nextTcLogQueue
|
|
||||||
<< " nextLogTcrec = " << tcRec.p->nextLogTcrec
|
|
||||||
<< endl;
|
|
||||||
ndbout << " nextHashRec = " << tcRec.p->nextHashRec
|
|
||||||
<< " logWriteState = " << tcRec.p->logWriteState
|
|
||||||
<< " logStartFileNo = " << tcRec.p->logStartFileNo
|
|
||||||
<< " listState = " << tcRec.p->listState
|
|
||||||
<< endl;
|
|
||||||
ndbout << " lastAttrinbuf = " << tcRec.p->lastAttrinbuf
|
|
||||||
<< " lastTupkeybuf = " << tcRec.p->lastTupkeybuf
|
|
||||||
<< " hashValue = " << tcRec.p->hashValue
|
|
||||||
<< endl;
|
|
||||||
ndbout << " gci = " << tcRec.p->gci
|
|
||||||
<< " fragmentptr = " << tcRec.p->fragmentptr
|
|
||||||
<< " fragmentid = " << tcRec.p->fragmentid
|
|
||||||
<< " firstTupkeybuf = " << tcRec.p->firstTupkeybuf
|
|
||||||
<< endl;
|
|
||||||
ndbout << " firstAttrinbuf = " << tcRec.p->firstAttrinbuf
|
|
||||||
<< " currTupAiLen = " << tcRec.p->currTupAiLen
|
|
||||||
<< " currReclenAi = " << tcRec.p->currReclenAi
|
|
||||||
<< endl;
|
|
||||||
ndbout << " tcTimer = " << tcRec.p->tcTimer
|
|
||||||
<< " clientConnectrec = " << tcRec.p->clientConnectrec
|
|
||||||
<< " applOprec = " << hex << tcRec.p->applOprec
|
|
||||||
<< " abortState = " << tcRec.p->abortState
|
|
||||||
<< endl;
|
|
||||||
ndbout << " transid0 = " << hex << tcRec.p->transid[0]
|
|
||||||
<< " transid1 = " << hex << tcRec.p->transid[1]
|
|
||||||
<< " tupkeyData0 = " << tcRec.p->tupkeyData[0]
|
|
||||||
<< " tupkeyData1 = " << tcRec.p->tupkeyData[1]
|
|
||||||
<< endl;
|
|
||||||
ndbout << " tupkeyData2 = " << tcRec.p->tupkeyData[2]
|
|
||||||
<< " tupkeyData3 = " << tcRec.p->tupkeyData[3]
|
|
||||||
<< endl;
|
|
||||||
switch (tcRec.p->transactionState) {
|
|
||||||
|
|
||||||
case TcConnectionrec::SCAN_STATE_USED:
|
|
||||||
if (tcRec.p->tcScanRec < cscanrecFileSize){
|
|
||||||
ScanRecordPtr TscanPtr;
|
|
||||||
c_scanRecordPool.getPtr(TscanPtr, tcRec.p->tcScanRec);
|
|
||||||
ndbout << " scanState = " << TscanPtr.p->scanState << endl;
|
|
||||||
//TscanPtr.p->scanLocalref[2];
|
|
||||||
ndbout << " copyPtr="<<TscanPtr.p->copyPtr
|
|
||||||
<< " scanAccPtr="<<TscanPtr.p->scanAccPtr
|
|
||||||
<< " scanAiLength="<<TscanPtr.p->scanAiLength
|
|
||||||
<< endl;
|
|
||||||
ndbout << " m_curr_batch_size_rows="<<
|
|
||||||
TscanPtr.p->m_curr_batch_size_rows
|
|
||||||
<< " m_max_batch_size_rows="<<
|
|
||||||
TscanPtr.p->m_max_batch_size_rows
|
|
||||||
<< " scanErrorCounter="<<TscanPtr.p->scanErrorCounter
|
|
||||||
<< endl;
|
|
||||||
ndbout << " scanSchemaVersion="<<TscanPtr.p->scanSchemaVersion
|
|
||||||
<< " scanStoredProcId="<<TscanPtr.p->scanStoredProcId
|
|
||||||
<< " scanTcrec="<<TscanPtr.p->scanTcrec
|
|
||||||
<< endl;
|
|
||||||
ndbout << " scanType="<<TscanPtr.p->scanType
|
|
||||||
<< " scanApiBlockref="<<TscanPtr.p->scanApiBlockref
|
|
||||||
<< " scanNodeId="<<TscanPtr.p->scanNodeId
|
|
||||||
<< " scanCompletedStatus="<<TscanPtr.p->scanCompletedStatus
|
|
||||||
<< endl;
|
|
||||||
ndbout << " scanFlag="<<TscanPtr.p->scanFlag
|
|
||||||
<< " scanLockHold="<<TscanPtr.p->scanLockHold
|
|
||||||
<< " scanLockMode="<<TscanPtr.p->scanLockMode
|
|
||||||
<< " scanNumber="<<TscanPtr.p->scanNumber
|
|
||||||
<< endl;
|
|
||||||
ndbout << " scanReleaseCounter="<<TscanPtr.p->scanReleaseCounter
|
|
||||||
<< " scanTcWaiting="<<TscanPtr.p->scanTcWaiting
|
|
||||||
<< " scanKeyinfoFlag="<<TscanPtr.p->scanKeyinfoFlag
|
|
||||||
<< endl;
|
|
||||||
} else{
|
|
||||||
ndbout << "No connected scan record found" << endl;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
ndbrequire(arg != 2308);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef ERROR_INSERT
|
#ifdef ERROR_INSERT
|
||||||
#ifdef NDB_DEBUG_FULL
|
#ifdef NDB_DEBUG_FULL
|
||||||
if(dumpState->args[0] == DumpStateOrd::LCPContinue){
|
if(dumpState->args[0] == DumpStateOrd::LCPContinue){
|
||||||
|
|
|
@ -434,7 +434,7 @@ NdbTransaction::executeNoBlobs(ExecType aTypeOfExec,
|
||||||
//------------------------------------------------------------------------
|
//------------------------------------------------------------------------
|
||||||
Ndb* tNdb = theNdb;
|
Ndb* tNdb = theNdb;
|
||||||
|
|
||||||
Uint32 timeout = TransporterFacade::instance()->m_waitfor_timeout;
|
Uint32 timeout = theNdb->theImpl->m_transporter_facade->m_waitfor_timeout;
|
||||||
m_waitForReply = false;
|
m_waitForReply = false;
|
||||||
executeAsynchPrepare(aTypeOfExec, NULL, NULL, abortOption);
|
executeAsynchPrepare(aTypeOfExec, NULL, NULL, abortOption);
|
||||||
if (m_waitForReply){
|
if (m_waitForReply){
|
||||||
|
|
|
@ -1055,7 +1055,7 @@ Ndb::pollCompleted(NdbTransaction** aCopyArray)
|
||||||
void
|
void
|
||||||
Ndb::check_send_timeout()
|
Ndb::check_send_timeout()
|
||||||
{
|
{
|
||||||
Uint32 timeout = TransporterFacade::instance()->m_waitfor_timeout;
|
Uint32 timeout = theImpl->m_transporter_facade->m_waitfor_timeout;
|
||||||
NDB_TICKS current_time = NdbTick_CurrentMillisecond();
|
NDB_TICKS current_time = NdbTick_CurrentMillisecond();
|
||||||
assert(current_time >= the_last_check_time);
|
assert(current_time >= the_last_check_time);
|
||||||
if (current_time - the_last_check_time > 1000) {
|
if (current_time - the_last_check_time > 1000) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue