Skip to content

enable_mixed_granularity_parts + delete mutation lead to broken parts #12536

@alesapin

Description

@alesapin

Describe the bug
Imagine that we have a table with old non-adaptive parts (.mrk extension) and enabled mixed granularity in the server's config in section (<enable_mixed_granularity_parts>1<enable_mixed_granularity_parts>) or using ALTER SETTING query.
In this case, when we execute ALTER DELETE mutation (actually use MergedBlockOutputStream) we will take information about index granularity from our source part https://github.com/ClickHouse/ClickHouse/blob/master/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp#L1066-L1067, and mark file extension will be the same as in source part https://github.com/ClickHouse/ClickHouse/blob/master/src/Storages/MergeTree/MergeTreeDataPartWide.cpp#L65 .mrk for the old part. But on the other hand, in the stream settings, we will write index granularity using information from storage https://github.com/ClickHouse/ClickHouse/blob/master/src/Storages/MergeTree/MergedBlockOutputStream.cpp#L49 which will be set to true. So we will get part with .mrk extension and adaptive granularity which server will not be able to read and mark as broken.

Broken since #8290.

Metadata

Metadata

Assignees

Labels

bugConfirmed user-visible misbehaviour in official releasecomp-mutationsALTER UPDATE/DELETE and mutation execution over parts (including lightweight updates/deletes).

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions