1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-11-25 20:23:16 +03:00

MCOL-1523 - fix issue with query failing and enablemodule failing trying to get um1 back.

This commit is contained in:
David Hill
2018-08-10 16:01:12 -05:00
parent 150171b714
commit 5927b1cf81
3 changed files with 18 additions and 43 deletions

View File

@@ -107,7 +107,7 @@
<DepProcessName1>WriteEngineServer</DepProcessName1> <DepProcessName1>WriteEngineServer</DepProcessName1>
<DepModuleName1>pm*</DepModuleName1> <DepModuleName1>pm*</DepModuleName1>
<DepProcessName2>DBRMWorkerNode</DepProcessName2> <DepProcessName2>DBRMWorkerNode</DepProcessName2>
<DepModuleName2>*</DepModuleName2> <DepModuleName2>@</DepModuleName2>
<DepProcessName3>ExeMgr</DepProcessName3> <DepProcessName3>ExeMgr</DepProcessName3>
<DepModuleName3>*</DepModuleName3> <DepModuleName3>*</DepModuleName3>
<RunType>SIMPLEX</RunType> <RunType>SIMPLEX</RunType>
@@ -122,7 +122,7 @@
<DepProcessName1>WriteEngineServer</DepProcessName1> <DepProcessName1>WriteEngineServer</DepProcessName1>
<DepModuleName1>pm*</DepModuleName1> <DepModuleName1>pm*</DepModuleName1>
<DepProcessName2>DBRMWorkerNode</DepProcessName2> <DepProcessName2>DBRMWorkerNode</DepProcessName2>
<DepModuleName2>*</DepModuleName2> <DepModuleName2>@</DepModuleName2>
<DepProcessName3>DDLProc</DepProcessName3> <DepProcessName3>DDLProc</DepProcessName3>
<DepModuleName3>@</DepModuleName3> <DepModuleName3>@</DepModuleName3>
<RunType>SIMPLEX</RunType> <RunType>SIMPLEX</RunType>

View File

@@ -1523,9 +1523,6 @@ void pingDeviceThread()
break; break;
//set query system state not ready //set query system state not ready
BRM::DBRM dbrm;
dbrm.setSystemQueryReady(false);
processManager.setQuerySystemState(false); processManager.setQuerySystemState(false);
processManager.setSystemState(oam::BUSY_INIT); processManager.setSystemState(oam::BUSY_INIT);
@@ -1806,9 +1803,6 @@ void pingDeviceThread()
} }
} }
//enable query stats
dbrm.setSystemQueryReady(true);
//set query system state ready //set query system state ready
processManager.setQuerySystemState(true); processManager.setQuerySystemState(true);
@@ -1865,9 +1859,6 @@ void pingDeviceThread()
else else
processManager.setSystemState(oam::ACTIVE); processManager.setSystemState(oam::ACTIVE);
//enable query stats
dbrm.setSystemQueryReady(true);
//set query system state ready //set query system state ready
processManager.setQuerySystemState(true); processManager.setQuerySystemState(true);
@@ -1929,9 +1920,6 @@ void pingDeviceThread()
log.writeLog(__LINE__, "module is down: " + moduleName, LOG_TYPE_CRITICAL); log.writeLog(__LINE__, "module is down: " + moduleName, LOG_TYPE_CRITICAL);
//set query system state not ready //set query system state not ready
BRM::DBRM dbrm;
dbrm.setSystemQueryReady(false);
processManager.setQuerySystemState(false); processManager.setQuerySystemState(false);
processManager.setSystemState(oam::BUSY_INIT); processManager.setSystemState(oam::BUSY_INIT);
@@ -1993,9 +1981,6 @@ void pingDeviceThread()
oam.dbrmctl("resume"); oam.dbrmctl("resume");
log.writeLog(__LINE__, "'dbrmctl resume' done", LOG_TYPE_DEBUG); log.writeLog(__LINE__, "'dbrmctl resume' done", LOG_TYPE_DEBUG);
//enable query stats
dbrm.setSystemQueryReady(true);
//set query system state ready //set query system state ready
processManager.setQuerySystemState(true); processManager.setQuerySystemState(true);
@@ -2201,9 +2186,6 @@ void pingDeviceThread()
//set recycle process //set recycle process
processManager.recycleProcess(moduleName); processManager.recycleProcess(moduleName);
//enable query stats
dbrm.setSystemQueryReady(true);
//set query system state ready //set query system state ready
processManager.setQuerySystemState(true); processManager.setQuerySystemState(true);
@@ -2220,9 +2202,6 @@ void pingDeviceThread()
oam.dbrmctl("resume"); oam.dbrmctl("resume");
log.writeLog(__LINE__, "'dbrmctl resume' done", LOG_TYPE_DEBUG); log.writeLog(__LINE__, "'dbrmctl resume' done", LOG_TYPE_DEBUG);
//enable query stats
dbrm.setSystemQueryReady(true);
//set query system state ready //set query system state ready
processManager.setQuerySystemState(true); processManager.setQuerySystemState(true);
} }
@@ -2236,9 +2215,6 @@ void pingDeviceThread()
//set recycle process //set recycle process
processManager.recycleProcess(moduleName); processManager.recycleProcess(moduleName);
//enable query stats
dbrm.setSystemQueryReady(true);
//set query system state ready //set query system state ready
processManager.setQuerySystemState(true); processManager.setQuerySystemState(true);
} }

View File

@@ -829,8 +829,10 @@ void processMSG(messageqcpp::IOSocket* cfIos)
if (opState == oam::MAN_OFFLINE || opState == oam::MAN_DISABLED if (opState == oam::MAN_OFFLINE || opState == oam::MAN_DISABLED
|| opState == oam::AUTO_DISABLED || opState == oam::AUTO_OFFLINE) { || opState == oam::AUTO_DISABLED || opState == oam::AUTO_OFFLINE) {
oam.dbrmctl("halt"); processManager.setSystemState(oam::BUSY_INIT);
log.writeLog(__LINE__, "'dbrmctl halt' done", LOG_TYPE_DEBUG);
//set query system state not ready
processManager.setQuerySystemState(false);
status = processManager.disableModule(moduleName, true); status = processManager.disableModule(moduleName, true);
log.writeLog(__LINE__, "Disable Module Completed on " + moduleName, LOG_TYPE_INFO); log.writeLog(__LINE__, "Disable Module Completed on " + moduleName, LOG_TYPE_INFO);
@@ -840,13 +842,11 @@ void processMSG(messageqcpp::IOSocket* cfIos)
//check for SIMPLEX Processes on mate might need to be started //check for SIMPLEX Processes on mate might need to be started
processManager.checkSimplexModule(moduleName); processManager.checkSimplexModule(moduleName);
//call dbrm control processManager.setSystemState(oam::ACTIVE);
// oam.dbrmctl("reload");
// log.writeLog(__LINE__, "'dbrmctl reload' done", LOG_TYPE_DEBUG); //set query system state ready
processManager.setQuerySystemState(true);
// resume the dbrm
oam.dbrmctl("resume");
log.writeLog(__LINE__, "'dbrmctl resume' done", LOG_TYPE_DEBUG);
} }
else else
{ {
@@ -910,7 +910,7 @@ void processMSG(messageqcpp::IOSocket* cfIos)
DeviceNetworkList::iterator listPT = devicenetworklist.begin(); DeviceNetworkList::iterator listPT = devicenetworklist.begin();
//stopModules being removed with the REMOVE option, which will stop process // do stopmodule then enable
for( ; listPT != devicenetworklist.end() ; listPT++) for( ; listPT != devicenetworklist.end() ; listPT++)
{ {
string moduleName = (*listPT).DeviceName; string moduleName = (*listPT).DeviceName;
@@ -933,6 +933,9 @@ void processMSG(messageqcpp::IOSocket* cfIos)
} }
if (opState == oam::MAN_DISABLED) { if (opState == oam::MAN_DISABLED) {
processManager.stopModule(moduleName, graceful, manualFlag);
log.writeLog(__LINE__, "stop Module Completed on " + moduleName, LOG_TYPE_INFO);
status = processManager.enableModule(moduleName, oam::MAN_OFFLINE); status = processManager.enableModule(moduleName, oam::MAN_OFFLINE);
log.writeLog(__LINE__, "Enable Module Completed on " + moduleName, LOG_TYPE_INFO); log.writeLog(__LINE__, "Enable Module Completed on " + moduleName, LOG_TYPE_INFO);
} }
@@ -2758,9 +2761,6 @@ void processMSG(messageqcpp::IOSocket* cfIos)
log.writeLog(__LINE__, "MSG RECEIVED: Process Restarted on " + moduleName + "/" + processName); log.writeLog(__LINE__, "MSG RECEIVED: Process Restarted on " + moduleName + "/" + processName);
//set query system states not ready //set query system states not ready
BRM::DBRM dbrm;
dbrm.setSystemQueryReady(false);
processManager.setQuerySystemState(false); processManager.setQuerySystemState(false);
processManager.setSystemState(oam::BUSY_INIT); processManager.setSystemState(oam::BUSY_INIT);
@@ -2841,7 +2841,8 @@ void processMSG(messageqcpp::IOSocket* cfIos)
break; break;
sleep(1); sleep(1);
} }
dbrm.setSystemQueryReady(true); processManager.setQuerySystemState(true);
} }
// if a DDLProc was restarted, reinit DMLProc // if a DDLProc was restarted, reinit DMLProc
@@ -2894,8 +2895,6 @@ void processMSG(messageqcpp::IOSocket* cfIos)
} }
//enable query stats //enable query stats
dbrm.setSystemQueryReady(true);
processManager.setQuerySystemState(true); processManager.setQuerySystemState(true);
processManager.setSystemState(oam::ACTIVE); processManager.setSystemState(oam::ACTIVE);
@@ -6489,7 +6488,7 @@ void ProcessManager::setQuerySystemState(bool set)
log.writeLog(__LINE__, "setQuerySystemState = " + oam.itoa(set), LOG_TYPE_DEBUG); log.writeLog(__LINE__, "setQuerySystemState = " + oam.itoa(set), LOG_TYPE_DEBUG);
try { try {
dbrm.setSystemQueryReady(set); dbrm.setSystemQueryReady(true);
log.writeLog(__LINE__, "setQuerySystemState successful", LOG_TYPE_DEBUG); log.writeLog(__LINE__, "setQuerySystemState successful", LOG_TYPE_DEBUG);
} }
catch(...) catch(...)