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

Народ, кто нибудь с таким сталкивался? два сервера в кластере +

zookeeper, Database Engine новомодный Atomic
табличка ReplicatedMergeTree
без нагрузки на INSERT

стопаю zookeeper
таблица переходит в состояние ReadOnly

стартую zookeeper
дожидаюсь пока ReadOnlyReplicas станет 0

и делаю на всякий случай
SYSTEM RESTART REPLICAS; SYSTEM SYNC REPLICA default.test_repl
на обоих серверах
исполняется
без ошибок

но после этого
DROP TABLE default.test_repl ON CLUSTER 'all-replicated' SYNC
валится

2021.01.24 14:07:08.723023 [ 47 ] {5fe1ce55-a6f7-4b6a-b1eb-e96d7baf0b1f} <Error> executeQuery: Code: 159, e.displayText() = DB::Exception: Watching task /clickhouse/test-cluster-for-alerts/task_queue/ddl/query-0000000001 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 2 unfinished hosts (0 of them are currently active), they are going to execute the query in background (version 21.1.2.15 (official build)) (from 127.0.0.1:48432) (in query: DROP TABLE default.test_repl ON CLUSTER "all-replicated" SYNC)

в логах ничего подозрительного
2021.01.24 14:04:08.032989 [ 111 ] {439be48c-f6d9-4fbd-b83b-aea200225a08} <Debug> DDLWorker: Processing task query-0000000001 (DROP TABLE default.test_repl ON CLUSTER `all-replicated` NO DELAY)
2021.01.24 14:04:08.038707 [ 111 ] {439be48c-f6d9-4fbd-b83b-aea200225a08} <Debug> DDLWorker: Executing query: DROP TABLE default.test_repl NO DELAY
2021.01.24 14:04:08.039701 [ 111 ] {67f828e5-c5fd-4146-af7a-5f893be0c44c} <Debug> executeQuery: (from 0.0.0.0:0, user: , using production parser) /* ddl_entry=query-0000000001 */ DROP TABLE default.test_repl NO DELAY
2021.01.24 14:04:08.044575 [ 111 ] {67f828e5-c5fd-4146-af7a-5f893be0c44c} <Information> default.test_repl (cd3a90b5-71f8-46aa-bf84-2299b1ebc61d): Stopped being leader
2021.01.24 14:04:08.052720 [ 111 ] {67f828e5-c5fd-4146-af7a-5f893be0c44c} <Debug> DatabaseCatalog: Waiting for table cd3a90b5-71f8-46aa-bf84-2299b1ebc61d to be finally dropped

что он там ждет то теперь?

11 ответов

32 просмотра

А подскажите пожалуйста где вообще описан atomic? В документации не могу ничего о нем найти

а просто drop ( без on cluster ) работает?

Slach-[altinity] Автор вопроса
Denny [Altinity]
а просто drop ( без on cluster ) работает?

Да, проходят, имеет смысл завести какой нибудь issue?

Slach [altinity]
Да, проходят, имеет смысл завести какой нибудь iss...

наверное стоит создать issue кубернетис? имена хостов какие в drop on cluster в zk ?

Slach-[altinity] Автор вопроса
Denny [Altinity]
наверное стоит создать issue кубернетис? имена хос...

да кубер, но я могу наверное попробовать и под docker-compose поведение воспроизвести да, есть ньюанс, имена хостов в кластере это имена k8s service они слегка отличаются от имен подов на которых это запускается... но имена реплик, в ReplicatedMergeTree это тоже имена сервиса один сервис, один под судя по всему, таблица на самом деле удаляется,но просто не приходит подтверждение когда делается ON CLUSTER ... SYNC...

Slach [altinity]
да кубер, но я могу наверное попробовать и под doc...

аа, я понял о чем вы наверное из-за SYNC ждет 480s <database_atomic_delay_before_drop_table_sec>480</database_atomic_delay_before_drop_table_sec> ON CLUSTER 180s distributed_ddl_task_timeout 180 поменяйте в config.xml на 30 сек. <database_atomic_delay_before_drop_table_sec>30

Slach-[altinity] Автор вопроса
Denny [Altinity]
аа, я понял о чем вы наверное из-за SYNC ждет 480...

спасибо большое, не знал про такую опцию но что-то вообще не помогло эта штука через system.settings не отображается... и не понятно есть она или нет похоже что оно вообще при SYNC с тойже ошибкой вылетает даже если вообще несуществующую таблицу попросить удалить сейчас воспроизведу через docker-compose и засабмичу баг

Slach-[altinity] Автор вопроса
Denny [Altinity]
аа, я понял о чем вы наверное из-за SYNC ждет 480...

похоже дело в DNS именах хостов то есть если удалять несуществующую таблицу через DROP TABLE IF EXISTS default.any_table ON CLUSTER SYNC то вываливается ошибка docker-compose exec clickhouse-0-0-0 clickhouse-client -q "DROP TABLE IF EXISTS default.any_name ON CLUSTER 'default' SYNC" clickhouse-0-0 9000 0 1 0 Received exception from server (version 21.1.2): Code: 159. DB::Exception: Received from localhost:9000. DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000001 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 1 unfinished hosts (0 of them are currently active), they are going to execute the query in background. когда Pod у меня это clickhouse-0-0-0 а Service это clickhouse-0-0 и в remote_servers прописан именно clickhouse-0-0:9000 (разрулил через alias в docker-compose) тогда видимо при DROP TABLE ... SYNC что-то ожидается в ddl Очереди из ZK ... и в результате не находится интересно что? имя хоста? поведение на docker-compose воспроизводится начиная с 20.10 когда SYNC вообще появился

Slach-[altinity] Автор вопроса
Denny [Altinity]
аа, я понял о чем вы наверное из-за SYNC ждет 480...

блин поставил <database_atomic_delay_before_drop_table_sec>10</database_atomic_delay_before_drop_table_sec> перестало воспроизводиться ... видимо что то не так делаю

Slach-[altinity] Автор вопроса
Denny [Altinity]
аа, я понял о чем вы наверное из-за SYNC ждет 480...

воспроизвелось в docker-compose <distributed_ddl_task_timeout>20</distributed_ddl_task_timeout> и <database_atomic_delay_before_drop_table_sec>1</database_atomic_delay_before_drop_table_sec> блин я не понимаю что не так с DNS пофигу, DNS не влияет похоже бага именно в atomic он не отдает в ddl queue в finished никаких результатов после физического удаления таблицы https://gist.github.com/Slach/a7f2946a108883f6b1d5585b1b5b6b0d

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта