Merge pull request #41379 from ClickHouse/tavplubix-patch-5

Fix an assertion in `wasInvolvedInTransaction`
This commit is contained in:
Alexander Tokmakov 2022-09-16 14:24:26 +03:00 committed by GitHub
commit 9597a47016
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 1 deletions

View File

@ -1291,7 +1291,7 @@ catch (Exception & e)
bool IMergeTreeDataPart::wasInvolvedInTransaction() const
{
assert(!version.creation_tid.isEmpty() || (state == MergeTreeDataPartState::Temporary /* && std::uncaught_exceptions() */));
assert(!storage.data_parts_loading_finished || !version.creation_tid.isEmpty() || (state == MergeTreeDataPartState::Temporary /* && std::uncaught_exceptions() */));
bool created_by_transaction = !version.creation_tid.isPrehistoric();
bool removed_by_transaction = version.isRemovalTIDLocked() && version.removal_tid_lock != Tx::PrehistoricTID.getHash();
return created_by_transaction || removed_by_transaction;

View File

@ -1560,6 +1560,7 @@ void MergeTreeData::loadDataParts(bool skip_sanity_checks)
calculateColumnAndSecondaryIndexSizesImpl();
LOG_DEBUG(log, "Loaded data parts ({} items)", data_parts_indexes.size());
data_parts_loading_finished = true;
}
/// Is the part directory old.

View File

@ -1034,6 +1034,8 @@ protected:
/// True if at least one part was created/removed with transaction.
mutable std::atomic_bool transactions_enabled = false;
std::atomic_bool data_parts_loading_finished = false;
/// Work with data parts
struct TagByInfo{};