Commit d411a684 authored by unknown's avatar unknown
Browse files

ndb - bug#20185

  second try - handle CS_PREPARE_TO_COMMIT explicitly


storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  handle CS_PREPARE_TO_COMMIT explictly
parent f68abd75
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -7093,16 +7093,21 @@ Dbtc::nodeFailCheckTransactions(Signal* signal,
  for (transPtr.i = transPtrI; transPtr.i < capiConnectFilesize; transPtr.i++)
  {
    ptrCheckGuard(transPtr, capiConnectFilesize, apiConnectRecord); 
    Uiint32 state = transPtr.p->apiConnectstate;
    if (transPtr.p->m_transaction_nodes.get(failedNodeId))
    {
      jam();
      
      // avoid assertion in timeoutfoundlab
      if (state != CS_PREPARE_TO_COMMIT)
      {
	// Force timeout regardless of state      
	c_appl_timeout_value = 1;
	setApiConTimer(transPtr.i, TtcTimer - 2, __LINE__);
	timeOutFoundLab(signal, transPtr.i, ZNODEFAIL_BEFORE_COMMIT);
	c_appl_timeout_value = TapplTimeout;
      }
    }
    
    // Send CONTINUEB to continue later
    signal->theData[0] = TcContinueB::ZNF_CHECK_TRANSACTIONS;