184 похожих чатов

Привет. Не могу нагуглить причины проблем, может кто-то сталкивался? Clickhouse 21.3.

Есть таблица ReplacingMergeTree с ~250 колонок. На стенде для разработки несколько раз обновляли cхему, какие-то колонки добавляли, какие-то удаляли через ALTER TABLE DROP COLUMN IF EXISTS mcolumn1

Потом встала необходимость использовать мутации. Мутации которые затрагивают определенный период времени падают с ошибкой
select * from system.mutations where is_done = 0
order by create_time limit 1 format Vertical;

database: scans_v2
table: nodes
mutation_id: mutation_8683024.txt
command: UPDATE correlated_state = 'UNSCANNED' WHERE (start >= '2021-10-26 14:42:18') AND (start <= '2021-11-25 00:00:00') AND (correlated_state = 'UNKNOWN')
create_time: 2022-04-13 07:39:56
block_numbers.partition_id: ['']
block_numbers.number: [8683024]
parts_to_do_names: ['202110_374935_375516_145_4413180']
parts_to_do: 1
is_done: 0
latest_failed_part: 202110_374935_375516_145_4413180
latest_fail_time: 2022-04-21 13:32:44
"latest_fail_reason: Code: 47, e.displayText() = DB::Exception: Missing columns: 'mcolumn1' 'mcolumn2' 'mcolumn3' ... 'mcolumnN' while processing query: 'ok_column1, ok_column2, mcolumn1, mcolumn2, mcolumn3, maybe you meant: [...] (version 21.3.20.1 (official build))"

За некоторое время таких упавших мутаций накопилось более 1.5 тыс. Обычные запросы стали работать в 10-20 раз медленне (например, 1с -> 20c).
После убийства мутаций kill mutation where is_done = 0 and length(latest_fail_reason) > 0 все стало работать нормально.
На самом деле мутации с fail_reason копились и до этого (миграции схемы), но не в таком количестве и их убийство помогало.

Что могло привести к такой ошибке? Можно ли дополнительно диагностировать проблемные партиции? И как это можно исправить?
Пока просто пропускаю проблемные партиции при новых мутациях и убиваю мутации с fail_reason.

2 ответов

7 просмотров
Roman-Haritonov Автор вопроса

Покопал еще немного, оказалось что проблемные партиции в compact формате. На диске в этом парте в columns.txt есть потерянные колонки. Что там в бинарных данных не знаю как посмотреть. После optimize table ... partition ..., остался только один wide part и все стало проходить на этой партиции. ALTER TABLE DROP COLUMN неправильно работает на part'ах в формате compact?

Roman-Haritonov Автор вопроса
Roman Haritonov
Покопал еще немного, оказалось что проблемные парт...

Отвечу сам себе для истории и поиска. Причиной оказался баг при удалении nested таблицы в part'е c форматом compact. Завел issue https://github.com/ClickHouse/ClickHouse/issues/36718

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта