diff --git a/src/Interpreters/ExternalDictionariesLoader.cpp b/src/Interpreters/ExternalDictionariesLoader.cpp index f615aa24a91..4dd779e3a50 100644 --- a/src/Interpreters/ExternalDictionariesLoader.cpp +++ b/src/Interpreters/ExternalDictionariesLoader.cpp @@ -136,7 +136,7 @@ std::string ExternalDictionariesLoader::resolveDictionaryNameFromDatabaseCatalog if (qualified_name->database.empty()) { - /// Ether database name is not specified and we should use current one + /// Either database name is not specified and we should use current one /// or it's an XML dictionary. bool is_xml_dictionary = has(name); if (is_xml_dictionary) diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index 533f44ac9cf..e4868cb00fb 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -2962,7 +2962,8 @@ void MergeTreeData::tryRemovePartImmediately(DataPartPtr && part) { auto lock = lockParts(); - LOG_TRACE(log, "Trying to immediately remove part {}", part->getNameWithState()); + auto part_name_with_state = part->getNameWithState(); + LOG_TRACE(log, "Trying to immediately remove part {}", part_name_with_state); if (part->getState() != DataPartState::Temporary) { @@ -2973,7 +2974,16 @@ void MergeTreeData::tryRemovePartImmediately(DataPartPtr && part) part.reset(); if (!((*it)->getState() == DataPartState::Outdated && it->unique())) + { + if ((*it)->getState() != DataPartState::Outdated) + LOG_WARNING(log, "Cannot immediately remove part {} because it's not in Outdated state " + "usage counter {}", part_name_with_state, it->use_count()); + + if (!it->unique()) + LOG_WARNING(log, "Cannot immediately remove part {} because someone using it right now " + "usage counter {}", part_name_with_state, it->use_count()); return; + } modifyPartState(it, DataPartState::Deleting); diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 1947a0ad427..52678899b9b 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -3322,7 +3322,7 @@ void StorageReplicatedMergeTree::removePartAndEnqueueFetch(const String & part_n if (!broken_part_info.contains(part->info)) continue; - /// Broken part itself ether already moved to detached or does not exist. + /// Broken part itself either already moved to detached or does not exist. assert(broken_part_info != part->info); part->makeCloneInDetached("covered-by-broken", getInMemoryMetadataPtr()); }