Loading storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -1672,6 +1672,7 @@ private: UintR cfailure_nr; UintR coperationsize; UintR ctcTimer; UintR cDbHbInterval; ApiConnectRecordPtr tmpApiConnectptr; UintR tcheckGcpId; Loading storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp +13 −4 Original line number Diff line number Diff line Loading @@ -661,6 +661,10 @@ void Dbtc::execREAD_CONFIG_REQ(Signal* signal) ndb_mgm_get_int_parameter(p, CFG_DB_TRANSACTION_DEADLOCK_TIMEOUT, &val); set_timeout_value(val); val = 1500; ndb_mgm_get_int_parameter(p, CFG_DB_HEARTBEAT_INTERVAL, &val); cDbHbInterval = (val < 10) ? 10 : val; val = 3000; ndb_mgm_get_int_parameter(p, CFG_DB_TRANSACTION_INACTIVE_TIMEOUT, &val); set_appl_timeout_value(val); Loading Loading @@ -6407,6 +6411,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr, Uint32 errCode) // conditions should get us here. We ignore it. /*------------------------------------------------------------------*/ case CS_PREPARE_TO_COMMIT: { jam(); /*------------------------------------------------------------------*/ /* WE ARE WAITING FOR DIH TO COMMIT THE TRANSACTION. WE SIMPLY*/ Loading @@ -6415,12 +6420,16 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr, Uint32 errCode) // To ensure against strange bugs we crash the system if we have passed // time-out period by a factor of 10 and it is also at least 5 seconds. /*------------------------------------------------------------------*/ if (((ctcTimer - getApiConTimer(apiConnectptr.i)) > (10 * ctimeOutValue)) && ((ctcTimer - getApiConTimer(apiConnectptr.i)) > 500)) { Uint32 time_passed = ctcTimer - getApiConTimer(apiConnectptr.i); if (time_passed > 500 && time_passed > (5 * cDbHbInterval) && time_passed > (10 * ctimeOutValue)) { jam(); systemErrorLab(signal, __LINE__); }//if break; } case CS_COMMIT_SENT: jam(); /*------------------------------------------------------------------*/ Loading Loading
storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -1672,6 +1672,7 @@ private: UintR cfailure_nr; UintR coperationsize; UintR ctcTimer; UintR cDbHbInterval; ApiConnectRecordPtr tmpApiConnectptr; UintR tcheckGcpId; Loading
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp +13 −4 Original line number Diff line number Diff line Loading @@ -661,6 +661,10 @@ void Dbtc::execREAD_CONFIG_REQ(Signal* signal) ndb_mgm_get_int_parameter(p, CFG_DB_TRANSACTION_DEADLOCK_TIMEOUT, &val); set_timeout_value(val); val = 1500; ndb_mgm_get_int_parameter(p, CFG_DB_HEARTBEAT_INTERVAL, &val); cDbHbInterval = (val < 10) ? 10 : val; val = 3000; ndb_mgm_get_int_parameter(p, CFG_DB_TRANSACTION_INACTIVE_TIMEOUT, &val); set_appl_timeout_value(val); Loading Loading @@ -6407,6 +6411,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr, Uint32 errCode) // conditions should get us here. We ignore it. /*------------------------------------------------------------------*/ case CS_PREPARE_TO_COMMIT: { jam(); /*------------------------------------------------------------------*/ /* WE ARE WAITING FOR DIH TO COMMIT THE TRANSACTION. WE SIMPLY*/ Loading @@ -6415,12 +6420,16 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr, Uint32 errCode) // To ensure against strange bugs we crash the system if we have passed // time-out period by a factor of 10 and it is also at least 5 seconds. /*------------------------------------------------------------------*/ if (((ctcTimer - getApiConTimer(apiConnectptr.i)) > (10 * ctimeOutValue)) && ((ctcTimer - getApiConTimer(apiConnectptr.i)) > 500)) { Uint32 time_passed = ctcTimer - getApiConTimer(apiConnectptr.i); if (time_passed > 500 && time_passed > (5 * cDbHbInterval) && time_passed > (10 * ctimeOutValue)) { jam(); systemErrorLab(signal, __LINE__); }//if break; } case CS_COMMIT_SENT: jam(); /*------------------------------------------------------------------*/ Loading