expel/nuke должны работать при наличии offline инстансов либо незавершённого DDL
При общих ограничениях указанных в #1100 expel/nuke должны работать при наличии оффлайн инстансов либо незавершённого DDL.
Сценарий:
- создать кластер из 5 узлов rf=1
- опустить 2 узла
- nuke на опущенные узлы, по одному
Сценарий 2:
- создать кластер из 6 узлов, rf=2
- опустить 1 узел
- выполнить create table/create plugin
- он зависнет
- опустить второй узел в другом репликасете
- удалить два опущенных узла c помощью expel
- всё должно выполниться, create table/create plugin должны завершиться успешно после удаления опущенных узлов.
Сценарий 3:
- Создать кластер из 3 узлов, rf=3
- Вставить иньекцию на sleep в box.ctl.promote
- Опустить лидера репликасета (sigstop)
- дождаться срабатывания иньекции.
- Удалить опущенный узел с помощью expel.
- отключить иньекцию
- Убедиться что избран новый лидер репликасета.
Сценарий 4:
-
Создать кластер из 6 узлов, rf=2
-
опустить 1 репликасет целиком.
-
Удалить 1 из узлов с помощью expel
-
Удалить второй узел с помощью nuke.
Сценарий 5, 6, 7, 8: то же самое что 1, 2, 3, 4 но выполнить restart оставшихся узлов кластера перед шагом nuke/expel.
Edited by Konstantin Osipov