mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-26 09:32:01 +00:00
fix too strict assertion
This commit is contained in:
parent
778416f576
commit
e8b7f963b7
@ -350,6 +350,12 @@ void DDLWorker::scheduleTasks(bool reinitialized)
|
||||
bool maybe_concurrently_deleting = task && !zookeeper->exists(fs::path(task->entry_path) / "active");
|
||||
return task && !maybe_concurrently_deleting && !maybe_currently_processing;
|
||||
}
|
||||
else if (last_skipped_entry_name.has_value() && !queue_fully_loaded_after_initialization_debug_helper)
|
||||
{
|
||||
/// If connection was lost during queue loading
|
||||
/// we may start processing from finished task (because we don't know yet that it's finished) and it's ok.
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
/// Return true if entry should not be scheduled.
|
||||
@ -365,7 +371,11 @@ void DDLWorker::scheduleTasks(bool reinitialized)
|
||||
|
||||
String reason;
|
||||
auto task = initAndCheckTask(entry_name, reason, zookeeper);
|
||||
if (!task)
|
||||
if (task)
|
||||
{
|
||||
queue_fully_loaded_after_initialization_debug_helper = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_DEBUG(log, "Will not execute task {}: {}", entry_name, reason);
|
||||
updateMaxDDLEntryID(entry_name);
|
||||
|
@ -131,6 +131,9 @@ protected:
|
||||
std::optional<String> first_failed_task_name;
|
||||
std::list<DDLTaskPtr> current_tasks;
|
||||
|
||||
/// This flag is needed for debug assertions only
|
||||
bool queue_fully_loaded_after_initialization_debug_helper = false;
|
||||
|
||||
Coordination::Stat queue_node_stat;
|
||||
std::shared_ptr<Poco::Event> queue_updated_event = std::make_shared<Poco::Event>();
|
||||
std::shared_ptr<Poco::Event> cleanup_event = std::make_shared<Poco::Event>();
|
||||
|
Loading…
Reference in New Issue
Block a user