You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
MCOL-259. Reload the Columnstore.xml if ERR_DATA_OFFLINE would be thrown. If still broke, throw anyway.
This commit is contained in:
@ -365,7 +365,17 @@ void pDictionaryScan::sendPrimitiveMessages()
|
||||
msgLbidCount = remainingLbids;
|
||||
|
||||
if (dbRootConnectionMap->find(dbroot) == dbRootConnectionMap->end())
|
||||
{
|
||||
// MCOL-259 force a reload of the xml. This usualy fixes it.
|
||||
std::cout << "dictionary forcing reload of columnstore.xml for dbRootConnectionMap" << std::endl;
|
||||
oamCache->forceReload();
|
||||
dbRootConnectionMap = oamCache->getDBRootToConnectionMap();
|
||||
if (dbRootConnectionMap->find(dbroot) == dbRootConnectionMap->end())
|
||||
{
|
||||
std::cout << "dictionary still not in dbRootConnectionMap" << std::endl;
|
||||
throw IDBExcept(ERR_DATA_OFFLINE);
|
||||
}
|
||||
}
|
||||
sendAPrimitiveMessage(primMsg, msgLbidStart, msgLbidCount, (*dbRootConnectionMap)[dbroot]);
|
||||
primMsg.restart();
|
||||
|
||||
|
@ -1621,7 +1621,17 @@ void TupleBPS::makeJobs(vector<Job> *jobs)
|
||||
|
||||
// a necessary DB root is offline
|
||||
if (dbRootConnectionMap->find(scannedExtents[i].dbRoot) == dbRootConnectionMap->end())
|
||||
{
|
||||
// MCOL-259 force a reload of the xml. This usualy fixes it.
|
||||
std::cout << "forcing reload of columnstore.xml for dbRootConnectionMap" << std::endl;
|
||||
oamCache->forceReload();
|
||||
dbRootConnectionMap = oamCache->getDBRootToConnectionMap();
|
||||
if (dbRootConnectionMap->find(scannedExtents[i].dbRoot) == dbRootConnectionMap->end())
|
||||
{
|
||||
std::cout << "still not in dbRootConnectionMap" << std::endl;
|
||||
throw IDBExcept(ERR_DATA_OFFLINE);
|
||||
}
|
||||
}
|
||||
|
||||
// cout << " session " << fSessionId << " idx = " << i << " HWM = " << scannedExtents[i].HWM
|
||||
// << " ... will scan " << lbidsToScan << " lbids\n";
|
||||
|
@ -337,7 +337,7 @@ next:
|
||||
/* If there was an error or an abort drain the input DL,
|
||||
do endOfInput on the output */
|
||||
if (cancelled()) {
|
||||
cout << "HJ stopping... status is " << status() << endl;
|
||||
// cout << "HJ stopping... status is " << status() << endl;
|
||||
if (largeBPS)
|
||||
largeBPS->abort();
|
||||
while (more)
|
||||
|
Reference in New Issue
Block a user