mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-27 18:12:02 +00:00
dbms: add try-catch around reloadFromFile in ExternalDictionaries.cpp [#METR-18128]
This commit is contained in:
parent
0f6c2839c2
commit
666a33e435
@ -48,7 +48,19 @@ void ExternalDictionaries::reloadImpl(const bool throw_on_error)
|
||||
const auto config_paths = getDictionariesConfigPaths(Poco::Util::Application::instance().config());
|
||||
|
||||
for (const auto & config_path : config_paths)
|
||||
reloadFromFile(config_path, throw_on_error);
|
||||
{
|
||||
try
|
||||
{
|
||||
reloadFromFile(config_path, throw_on_error);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
tryLogCurrentException(log, "reloadFromFile has thrown while reading from " + config_path);
|
||||
|
||||
if (throw_on_error)
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
/// list of recreated dictionaries to perform delayed removal from unordered_map
|
||||
std::list<std::string> recreated_failed_dictionaries;
|
||||
@ -101,6 +113,9 @@ void ExternalDictionaries::reloadImpl(const bool throw_on_error)
|
||||
catch (...)
|
||||
{
|
||||
tryLogCurrentException(log, "Failed reloading '" + name + "' dictionary");
|
||||
|
||||
if (throw_on_error)
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
@ -162,6 +177,9 @@ void ExternalDictionaries::reloadImpl(const bool throw_on_error)
|
||||
dictionary.second.exception = std::current_exception();
|
||||
|
||||
tryLogCurrentException(log, "Cannot update external dictionary '" + name + "', leaving old version");
|
||||
|
||||
if (throw_on_error)
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user