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-1116 Fix I_S.CS_FILES for missing dbroot
If a dbroot is missing/offline mysqld would crash on information_schema.columnstore_files due to not catching an exception. This patch now catches the exception.
This commit is contained in:
@ -124,6 +124,17 @@ static int is_columnstore_files_fill(THD *thd, TABLE_LIST *tables, COND *cond)
|
|||||||
iter++;
|
iter++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
oam_instance.getDbrootPmConfig(iter->dbRoot, pmId);
|
||||||
|
}
|
||||||
|
catch (std::runtime_error)
|
||||||
|
{
|
||||||
|
// MCOL-1116: If we are here a DBRoot is offline/missing
|
||||||
|
iter++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
table->field[0]->store(oid);
|
table->field[0]->store(oid);
|
||||||
table->field[1]->store(iter->segmentNum);
|
table->field[1]->store(iter->segmentNum);
|
||||||
table->field[2]->store(iter->partitionNum);
|
table->field[2]->store(iter->partitionNum);
|
||||||
@ -134,7 +145,7 @@ static int is_columnstore_files_fill(THD *thd, TABLE_LIST *tables, COND *cond)
|
|||||||
std::string DbRootPath = config->getConfig("SystemConfig", DbRootName.str());
|
std::string DbRootPath = config->getConfig("SystemConfig", DbRootName.str());
|
||||||
fileSize = compressedFileSize = 0;
|
fileSize = compressedFileSize = 0;
|
||||||
snprintf(fullFileName, WriteEngine::FILE_NAME_SIZE, "%s/%s", DbRootPath.c_str(), oidDirName);
|
snprintf(fullFileName, WriteEngine::FILE_NAME_SIZE, "%s/%s", DbRootPath.c_str(), oidDirName);
|
||||||
oam_instance.getDbrootPmConfig(iter->dbRoot, pmId);
|
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
oss << "pm" << pmId << "_WriteEngineServer";
|
oss << "pm" << pmId << "_WriteEngineServer";
|
||||||
std::string client = oss.str();
|
std::string client = oss.str();
|
||||||
|
Reference in New Issue
Block a user