145145//#define DEBUG_QUOTA_ABORT 1
146146//#define DEBUG_TRACK_EXEC_FLAG 1
147147//#define DEBUG_SCAN_MANY 1
148+ //#define DEBUG_RATE_OVERFLOW 1
148149#endif
149150
150151#define MAX_QUEUE_TIME_MS 60
162163#define DEBUG(x)
163164#endif
164165
166+ #ifdef DEBUG_RATE_OVERFLOW
167+ #define DEB_RATE_OVERFLOW(arglist) do { g_eventLogger->info arglist ; } while (0)
168+ #else
169+ #define DEB_RATE_OVERFLOW(arglist) do { } while (0)
170+ #endif
171+
165172#ifdef DEBUG_TRACK_EXEC_FLAG
166173#define DEB_TRACK_EXEC_FLAG(arglist) do { g_eventLogger->info arglist ; } while (0)
167174#else
@@ -6159,11 +6166,6 @@ Dbtc::CommitAckMarker::insert_in_commit_ack_marker_all(Dbtc *tc,
61596166void Dbtc::execLQHKEYCONF(Signal *signal) {
61606167 const LqhKeyConf *lqhKeyConf =
61616168 CAST_CONSTPTR(LqhKeyConf, signal->getDataPtr());
6162- #ifdef UNUSED
6163- ndbout << "TC: Received LQHKEYCONF"
6164- << " transId1=" << lqhKeyConf->transId1
6165- << " transId2=" << lqhKeyConf->transId2 << endl;
6166- #endif /*UNUSED*/
61676169 UintR compare_transid1, compare_transid2;
61686170 BlockReference tlastLqhBlockref;
61696171 UintR tlastLqhConnect;
@@ -6214,6 +6216,14 @@ void Dbtc::execLQHKEYCONF(Signal *signal) {
62146216 apiConnectptr.i = regTcPtr->apiConnect;
62156217 commitAckMarker.i = regTcPtr->commitAckMarker;
62166218
6219+ DEB_RATE_QUEUE(("(%u) LQHKEYCONF: tcPtrI: %u, apiPtrI: %u,"
6220+ " transid[0x%x,0x%x]",
6221+ instance(),
6222+ tcConnectptr.i,
6223+ regTcPtr->apiConnect,
6224+ lqhKeyConf->transId1,
6225+ lqhKeyConf->transId2));
6226+
62176227 OperationState TtcConnectstate = regTcPtr->tcConnectstate;
62186228 if (unlikely(TtcConnectstate != OS_OPERATING))
62196229 {
@@ -6594,6 +6604,14 @@ void Dbtc::lqhKeyConf_checkTransactionState(Signal *signal,
65946604 UintR Tlqhkeyreqrec = apiConnectptr.p->lqhkeyreqrec;
65956605 int TnoOfOutStanding = Tlqhkeyreqrec - Tlqhkeyconfrec;
65966606
6607+ DEB_RATE_QUEUE(("(%u) LQHKEYCONF(2): apiPtrI: %u, state: %u,"
6608+ " transid[0x%x,0x%x]",
6609+ instance(),
6610+ apiConnectptr.i,
6611+ TapiConnectstate,
6612+ apiConnectptr.p->transid[0],
6613+ apiConnectptr.p->transid[1]));
6614+
65976615 switch (TapiConnectstate) {
65986616 case CS_START_COMMITTING:
65996617 if (TnoOfOutStanding == 0) {
@@ -7567,6 +7585,13 @@ void Dbtc::execCOMMITTED(Signal *signal) {
75677585 */
75687586 return;
75697587 }
7588+ DEB_RATE_QUEUE(("(%u) COMMITTED: tcPtrI: %u, apiPtrI: %u,"
7589+ " transid[0x%x,0x%x]",
7590+ instance(),
7591+ localTcConnectptr.i,
7592+ localTcConnectptr.p->apiConnect,
7593+ conf->transid1,
7594+ conf->transid2));
75707595 UintR Tcounter = localApiConnectptr.p->counter - 1;
75717596 ConnectionState TapiConnectstate = localApiConnectptr.p->apiConnectstate;
75727597 UintR Tdata1 = localApiConnectptr.p->transid[0] - conf->transid1;
@@ -8532,6 +8557,13 @@ void Dbtc::execCOMPLETED(Signal *signal) {
85328557 warningReport(signal, 6, localTcConnectptr.i);
85338558 return;
85348559 }
8560+ DEB_RATE_QUEUE(("(%u) COMPLETED: tcPtrI: %u, apiPtrI: %u,"
8561+ " transid[0x%x,0x%x]",
8562+ instance(),
8563+ localTcConnectptr.i,
8564+ localTcConnectptr.p->apiConnect,
8565+ conf->transid1,
8566+ conf->transid2));
85358567 bool Tcond1 = (localTcConnectptr.p->tcConnectstate != OS_COMPLETING);
85368568 localApiConnectptr.i = localTcConnectptr.p->apiConnect;
85378569 if (Tcond1) {
@@ -8915,8 +8947,14 @@ void Dbtc::execLQHKEYREF(Signal *signal) {
89158947 warningReport(signal, 25, tcConnectptr.i);
89168948 return;
89178949 }
8918- DEB_RATE_QUEUE(("(%u) LQHKEYREF: %u, errCode: %u",
8919- instance(), tcConnectptr.i, errCode));
8950+ DEB_RATE_QUEUE(("(%u) LQHKEYREF: tcPtrI: %u, apiPtrI: %u, errCode: %u,"
8951+ " transid[0x%x,0x%x]",
8952+ instance(),
8953+ tcConnectptr.i,
8954+ tcConnectptr.p->apiConnect,
8955+ errCode,
8956+ lqhKeyRef->transId1,
8957+ lqhKeyRef->transId2));
89208958 {
89218959 /*-----------------------------------------------------------------------
89228960 * WE HAVE TO CHECK THAT THE TRANSACTION IS STILL VALID. FIRST WE CHECK
@@ -9272,6 +9310,12 @@ void Dbtc::execTC_COMMITREQ(Signal *signal) {
92729310 const Uint32 transId2 = regApiPtr->transid[1];
92739311 Uint32 errorCode = 0;
92749312
9313+ DEB_RATE_QUEUE(("(%u) TC_COMMITREQ: apiPtrI: %u,"
9314+ " transid[0x%x,0x%x]",
9315+ instance(),
9316+ apiConnectptr.i,
9317+ regApiPtr->transid[0],
9318+ regApiPtr->transid[1]));
92759319 tc_clearbit(regApiPtr->m_flags, ApiConnectRecord::TF_NOT_OUTSTANDING_FLAG);
92769320 regApiPtr->m_flags |= ApiConnectRecord::TF_EXEC_FLAG;
92779321 DEB_TRACK_EXEC_FLAG(("(%u) Set TF_EXEC_FLAG, apiPtrI: %u, line: %u",
@@ -15621,6 +15665,8 @@ void Dbtc::execSCAN_TABREQ(Signal *signal) {
1562115665 ndbrequire(m_databaseRecordPool.getPtr(databaseRecordPtr));
1562215666 if (databaseRecordPtr.p->m_is_queueing_abort_read) {
1562315667 jam();
15668+ DEB_RATE_OVERFLOW(("(%u) db: %llu, apiPtrI: %u",
15669+ instance(), databaseRecordPtr.i, apiConnectptr.i));
1562415670 releaseSections(handle);
1562515671 errCode = ZRATE_OVERFLOW_ERROR;
1562615672 goto SCAN_TAB_error;
@@ -15655,6 +15701,8 @@ void Dbtc::execSCAN_TABREQ(Signal *signal) {
1565515701 if (databaseRecordPtr.p->m_is_queueing_abort_read) {
1565615702 jam();
1565715703 releaseSections(handle);
15704+ DEB_RATE_OVERFLOW(("(%u) db: %llu, transOwnerPtrI: %u",
15705+ instance(), databaseRecordPtr.i, transOwnerPtr.i));
1565815706 errCode = ZRATE_OVERFLOW_ERROR;
1565915707 goto SCAN_TAB_error;
1566015708 }
@@ -27237,9 +27285,11 @@ bool Dbtc::queue_tckeyreq(Signal *signal,
2723727285 char *ai_area = key_area + 4 * key_length;
2723827286 copy((Uint32*)ai_area, ai_ptr);
2723927287 }
27288+ #ifdef DEBUG_RATE_QUEUE
27289+ const TcKeyReq * const tcKeyReq = (TcKeyReq *)&signal->theData[0];
2724027290 DEB_RATE_QUEUE(("(%u) Queue TCKEYREQ, now: %llu, ptr: %p, apiPtr.i: %u"
2724127291 ", sig_len: %u, sections: %u, key_len: %u, ai_len: %u"
27242- ", key[%u,%u,%u,%u,%u,%u]",
27292+ ", key[%u,%u,%u,%u,%u,%u], transid[0x%x,0x%x)] ",
2724327293 instance(),
2724427294 now.getUint64(),
2724527295 queue_record,
@@ -27253,7 +27303,10 @@ bool Dbtc::queue_tckeyreq(Signal *signal,
2725327303 key_length > 2 ? ((Uint32*)key_area)[2] : 0xFFFF,
2725427304 key_length > 3 ? ((Uint32*)key_area)[3] : 0xFFFF,
2725527305 key_length > 4 ? ((Uint32*)key_area)[4] : 0xFFFF,
27256- key_length > 5 ? ((Uint32*)key_area)[5] : 0xFFFF ));
27306+ key_length > 5 ? ((Uint32*)key_area)[5] : 0xFFFF,
27307+ tcKeyReq->transId1,
27308+ tcKeyReq->transId2));
27309+ #endif
2725727310 }
2725827311
2725927312 insert_queue_record_tc(transPtr.p, queue_record);
@@ -27661,7 +27714,8 @@ void Dbtc::debug_db_no_queue(DatabaseRecordPtr databaseRecordPtr,
2766127714 DEB_RATE_QUEUE(("(%u):%u TCKEYREQ no queueing, passQueueFlag: %u,"
2766227715 " DB:first_queue: %p, start_queued: %u, all_queued: %u,"
2766327716 " tcPtrI: %u, Trans:first_queue: %p,"
27664- " startTrans: %u, op_type: %s, tableId: %u",
27717+ " startTrans: %u, op_type: %s, tableId: %u"
27718+ ", transid[0x%x,0x%x]",
2766527719 instance(),
2766627720 databaseRecordPtr.p->m_database_id,
2766727721 passQueueingFlag,
@@ -27679,6 +27733,8 @@ void Dbtc::debug_db_no_queue(DatabaseRecordPtr databaseRecordPtr,
2767927733 opType == ZREAD_EX ? "ReadEx" :
2768027734 opType == ZUNLOCK ? "Unlock" :
2768127735 opType == ZREFRESH ? "Refresh" : "Other",
27682- tableId));
27736+ tableId,
27737+ regApiPtr->transid[0],
27738+ regApiPtr->transid[1]));
2768327739 }
2768427740}
0 commit comments