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

Всем привет! Нужна ваша помощь. Вчера начались проблемы с Зукипером.

Кликхаус регулярно начал терять соединение с Зукипером. При этом некоторые инсерты и мерджи падали. После добавления ресурсов серверам с Зукипером, вроде, всё нормализовалось. Но сейчас появились проблемы с селектами. Ошибки вида:

Cannot read all data in MergeTreeReaderCompact. Rows read: 0. Rows expected: 10

Code: 432. DB::Exception: Unknown codec family code: 32: (while reading column client_ts): While executing MergeTreeInOrder. (UNKNOWN_CODEC)

Грешу на некоторые парты, которые со вчера почему-то не смерджены. Т.е. новые парты, которые начали приходить после - мерджатся, а эти - никак.

Попытался их детачнуть, но выдает такие ошибки:

Part 202203_485644_485644_0 is currently participating in a background operation (mutation/merge), try again later. (PART_IS_TEMPORARILY_LOCKED).

Но при этом в таблицах system.merges и system.replication_queue ничего нет.

В общем, сейчас пробуем перезапустить одну из реплик с флагом force_restore_data, но не уверен что поможет. Может идеи как еще это всё можно исправить?

9 ответов

86 просмотров
Ivan-Merzlyakov Автор вопроса

На всякий случай апну, а то ситуация крайне неприятная. В дополнение, после перезапуска одной реплики с force_restore_data, начали перезапускаться все реплики и в итоге так и не могут нормально поднятся. Постоянно падают. При этом в логах в момент падения ничего нет. Из ошибок в логах мелькает что-то такое: Code: 49. DB::Exception: Part 202203_509162_509173_1 intersects previous part 202203_502266_509165_6122. It is a bug or a result of manual intervention in the ZooKeeper data. (LOGICAL_ERROR) При этом, само собой, в Зукипер вручную никто не лазил. В общем, что делать пока не понятно. Есть идея развернуть Кликхаус и Зукипер заново с нуля и потом вручную просто приаттачить старые парты. Но я не знаю, могут ли быть у такого решения какие-то подводные камни. Тем более что большинство данных лежит в S3. Плюс может всё-таки как-то можно оживить из текущего положения.

Ivan-Merzlyakov Автор вопроса
Ivan Merzlyakov
На всякий случай апну, а то ситуация крайне неприя...

Если кто-то сможет помочь, буду очень благодарен.

Funny Lemon
разобрались? встретил такую же проблему

LOGICAL_ERROR = БАГ КХ нужно создавать issue

Константин
LOGICAL_ERROR = БАГ КХ нужно создавать issue

печально, нет возможности ждать пока пофиксят, проблема ну очень болезненная

Funny Lemon
печально, нет возможности ждать пока пофиксят, про...

issue ищите в гитхабе может рассказывают как пофиксить

Ivan-Merzlyakov Автор вопроса
Funny Lemon
разобрались? встретил такую же проблему

Да, разобрались. На сколько я помню, пришлось сделать что-то такое: 1. Полностью остановить все клиенты чтобы не было запросов в Кликхаус. 2. Остановить все реплики Кликхауса. 3. Убить все реплики Зукипера и развернуть их с нуля. 4. На одной из реплик Кликахуса создать новые, не реплицируемые, таблицы с той же структурой что и старые, но с другим именем 4. В ручном режиме скопировать файлы старых таблиц в папки новых таблиц. 5. Запустить реплику с новыми таблицами с флагом force_restore_data. 6. Сделать новые таблицы реплицируемыми и запустить остальные реплики Кликхауса. 7. Профит. Не уверен, что в точности вспомнил что делалось, но направление примерно такое. Также абсолютно не уверен что это решение адекватное. По идее, должен быть способ восстановить Зукипер не таким варварским методом. Но как бы там ни было, кластер восстановить удалось.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
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...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта